Oracle과 MySQL의 차이점

코딩하는 포로리·2022년 1월 21일
11

DB

목록 보기
1/5
post-thumbnail

📌 1. Oracle vs MySQL


📎 Intro: DB(Data Base)란?

여러 사람에 의해 공유되어 사용될 목적으로 통합하여 관리되는 데이터의 집합이다. 자료를 구조화하여 저장함으로써 자료 검색과 갱신의 효율을 높일 수 있다.

📎 Oracle과 MySQL

백엔드를 배우다보면 DB는 반드시 배워야하는 존재이다. 데이터를 관리하는 DB는 여러가지 종류의 프로그램이 있는데, 그중에서도 Oracle과 MySQL을 가장 많이 사용한다.

특히 돈이 적거나 중소기업들은 대체로 MySQL을 선호하고, 충분한 예산과 복잡한 비즈니스 요구를 수행해야 하는 큰 프로젝트를 주로 수행하는 대기업은 대체로 Oracle을 선호한다.

실제로 나도 학원에서 배울때, MySQL→Oracle순으로 DB를 배울만큼 두개의 프로그램은 현업에서 손꼽히게 사용되는 DB프로그램이다. 그 외에도 SQLite, DBeaver, MariaDB등 많은 종류의 관리 툴이 존재하지만 실질적으로 사용되는 프로그램을 먼저 배우는 것이 좋을 듯하다.

오늘은 가장 많이 쓰이는 2가지 DB관리 툴에 대해 두드러지는 특징과 문법적인 차이가 무엇이 있는지 정리하려고 한다. 면접에도 많이 나올 질문일 것 같고, 정리해두면 확실하게 문법적 차이를 기억할 수 있을 것 같다.


📌 2. Oracle


📎 오라클(Oracle)이란?

오라클이란 미국의 오라클 회사에서 제작한 세계 점유율 1위 데이터베이스 관리 시스템이며 현재 유닉스 체제에서 가장 많이 사용되는 DBMS이다.

📎 오라클 장점

👉 관리시스템

  • Multiple databases 튜닝 가능하다.
  • 다수의 사용자가 동시에 접근이 가능하다.

👉 변화관리

  • 변경 plan을 작성하고 실제 구현하기 전에 변경 사항의 효과를 볼 수 있다.
  • 생산 시스템을 방해하지 않는다.

👉 경고

  • 오류가 발생하면 설정되어 있는 계정 및 이메일로 연락이 온다.
  • 경고는 에정된 가종 정지 시간 동안 차단 될 수 있다.

👉 분산처리

  • DBMS 실행 컴퓨터 / 서버 역할 컴퓨터 / DB 응용 프로그램 실행 컴퓨터 다르게 분산처리한다.

👉 용량&처리

  • 다른 데이터베이스보다 고성능의 트랜잭션을 처리한다.
  • Cost 비용을 최소화 하기 위해 테이블과 인덱스를 분석한다.

📎 오라클 단점

👉 비용적인 부담 증가
👉 기능이 많아 초보자에게 어려움
👉 높은 지원 하드웨어 사양이 필요함


📌 3. MySQL


📎 MySQL 이란?

MySQL은 전세계적으로 가장 널리 사용되고 있는 오픈 소스 데이터베이스이며, MySQL AB사가 개발하여 배포 및 판매하고 있는 데이터베이스 관리툴이다.

📎 MySQL 장점

👉 용량&처리

  • MySQL은 오직 1MB의 RAM만 사용할만큼 용량 차지가 적다 = 매우 적은 오버 헤드를 사용한다.
  • 처리 속도가 빠르고대용량 데이터 처리에 용이하다.

👉 접근성

  • 다른 데이터 관리 툴에 비해 구조가 간단하여 사용하기가 매우 쉽다.

👉 지원

  • 다양한 프로그래밍 언어와 통합할 수 있다.
  • 거의 모든 운영체제 사용을 지원한다.

👉 유연성

  • 유연하고 확장이 가능한 구조이다.

👉 가격

  • MySQL 데이터베이스는 무료라서 비용적인 부담이 적다.
  • 오픈소스는 무료, 상업용은 유료이다.

📎 MySQL 단점

👉 복잡한 쿼리는 성능 저하
👉 트랜잭션 지원이 완벽하지 않음
👉 사용자정의 함수의 사용이 쉽지 않고 유연하지 않음


📌 4. 차이점


📎 구조적 차이

👉 Oracle: DB 서버가 통합된 하나의 스토리지를 공유하는 방식
👉 MySQL: DB 서버마다 독립적인 스토리지를 할당하는 방식

📎 조인 방식의 차이

👉 Oracle: 중첩 루프 조인, 해시 조인, 소트 머지 조인 방식을 제공
👉 MySQL: 중첩 루프 조인 방식을 제공

📎 확장성의 차이

👉 Oracle: 별도의 DBMS을 설치해 사용할 수 없음👉 MySQL: 별도의 DBMS을 설치해 사용할 수 있음

📎 메모리 사용율의 차이

👉 Oracle: 메모리 사용율이 커서 최소 수백MB 이상이 되어야 설치 가능
👉 MySQL: 메모리 사용율이 낮아서 1MB 환경에서도 설치가 가능

📎 구문의 차이

  1. Null 값 확인 함수
  • Oracle: NVL
  • MySQL: IFNULL
  1. 현재 날짜 및 시간 확인 함수
  • Oracle: SYSDATE
  • MySQL: DATE()
  1. 날짜 포멧 변환
  • Oracle: TO_CHAR
  • MySQL: DATE_FORMAT
  1. 요일 변환의 숫자 범위
  • Oracle: 일,월,화,수,목,금,토를 1,2,3,4,5,6,7로 인식
  • MySQL: 일,월,화,수,목,금,토를 0, 1,2,3,4,5,6로 인식
  1. 문자와 문자 합치는 방법
  • Oracle: ' '
  • MySQL: COMCAT
  1. 형변환 방법
  • Oracle: TO_CHAR
  • MySQL: CAST
  1. 페이징 처리
  • Oracle: ROWNU BETWEEN 0 AND 10
  • MySQL: LIMIT
  1. 시퀀스 사용시 다음 번호 불러오는 방법
  • Oracle: 시퀀스명.NEXTVAL
  • MySQL: 시퀀스명.CURRVAL


📌 5. 마무리


둘다 깊이 사용은 안해봤지만, 겉핡기식으로 사용해본 결과 확실히 MySQL이 초보자가 사용하기 편하다. 내가 시각디자인을 전공해서 그런지 몰라도 UI/UX가 훨씬 좋다. 조사해보니 오라클이 훨씬 기능적인 면에서 우수해 보이지만, UI/UX가 그리 좋지 못해서 선뜻 사용하기 어려워보인다. 하지만 큰 트래픽과 데이터를 다루는 대기업에서 오라클을 사용한다고 하니 익숙해지도록 노력해야겠다.


📖 참고

3개의 댓글

comment-user-thumbnail
2022년 12월 28일

좋네요 ㅎ

답글 달기
comment-user-thumbnail
2023년 1월 14일

좋은 글 감사합니다 !

답글 달기
comment-user-thumbnail
2023년 8월 7일

mysql 8 부터 해쉬 조인을 지원하네요

답글 달기