본문 바로가기
Database

[Database] Oracle / MySQL의 특징과 차이

by jn4624 2022. 7. 22.
반응형

1. Oracle

미국의 오라클 회사에서 제작한 세계 점유율 1위 데이터베이스 관리시스템이며

현재 유닉스 체제에서 가장 많이 사용되는 DBMS이다.

 

a. 장점

 

  • 관리시스템
    • 중앙 집중 방식으로 Administration Monitoring이 가능하고, Multiple Databases 튜닝이 가능하다.
    • 다른 Admin User들과 공유가 가능하다.
    • 다수의 사용자가 동시에 접근 가능하다.
  • 변화 관리
    • 변경 Plan을 작성하고 실제 구현하기 전에 변경사항의 효과를 볼 수 있다.
    • 생산시스템을 방해하지 않는다.
  • 경고
    • 오류가 발생하면 오라클은 이메일이나 설정되어 있는 계정으로 연락을 줄 수 있다.
    • 경고는 예정된 가동 정지 시간 동안 차단될 수 있다.
  • 용량 & 처리
    • 업그레이드 관리자의 계획을 돕기 위해 사용 패턴을 추적할 수 있다.
    • 병목현상을 쉽게 파악할 수 있다.
    • DBMS 실행 컴퓨터 / 서버 역할 컴퓨터 / DB 응용프로그램 실행 컴퓨터 각 다르게 분산처리한다.
    • 다른 데이터베이스보다 고성능의 트랜잭션을 처리한다.
  • 최적화 도구
    • 쿼리 최적화 프로그램으로 오라클은 SQL문을 실행하는 가장 효율적인 방법을 선택한다.
    • Cost 비용을 최소화하기 위해 테이블과 인덱스를 분석한다(Oracle 10g 이상부터는 Cost_Base).

 

b. 단점

 

  • 비용적인 부담 증가한다.
  • 기능이 많아 초보자에게는 어렵다.
  • 높은 지원의 하드웨어 사양이 필요하다.

 

2. MySQL

전세계적으로 가장 널리 사용되고 있는 오픈 소스 데이터베이스이며,

MySQL AB사가 개발하여 배포 및 판매하고 있는 데이터베이스 관리시스템이다.

 

a. 장점

 

  • 용량 & 처리
    • MySQL은 노트북에 단지 1Mb의 RAM만 사용하여 매우 적은 오버헤드를 사용한다(오라클의 9i를 설치하는 경우 128Mb를 사용한다).
    • 처리속도가 빠르고 대용량 데이터 처리에 용이하다.
  • 접근성
    • 다른 데이터 관리 툴에 비해 구조가 간단하여 사용하기가 매우 쉽다.
  • 지원
    • 다양한 프로그래밍 언어와 통합할 수 있다.
    • 거의 모든 운영체제 사용을 지원한다.
    • PHPMyAdmin 같은 비용이 무료인 GUI 툴이 많다.
    • 고급 기능을 지원하기 시작했다(Stored Procedures, Triggers, View, Sub-Queries, Transactional Table, Cascading Update & Delete, 타사 InnoDB Storage Engine을 사용할 수 있다).
  • 유연성
    • 유연하고 확장이 가능한 구조이다.
  • 가격
    • MySQL 데이터베이스는 무료라서 비용적인 부담이 적다.
    • 오픈소스는 무료, 상업용은 유로이다.

 

b. 단점

 

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

 

3. ORACLE과 MySQL의 차이

  • 구조적 차이
    • Oracle - DB서버가 통합된 하나의 스토리지를 공유하는 방식
    • MySQL - DB서버마다 독립적인 스토리지를 할당하는 방식
  • 조인방식의 차이
    • Oracle - 중첩 루프 조인, 해시 조인, 소트 머지 조인 방식을 제공
    • MySQL - 중첩 루프 조인 방식을 제공
  • 확장성의 차이
    • Oracle - 별도의 DBMS를 설치해 사용할 수 없음
    • MySQL - 별도의 DBMS를 설치해 사용할 수 있음
  • 메모리 사용률의 차이
    • Oracle - 메모리 사용률이 커서 최소 수백 Mb 이상이 되어야 설치 가능
    • MySQL - 메모리 사용률이 낮아서 1Mb 환경에서도 설치가 가능
  • 구문의 차이
    • Null 값 확인 함수
      • Oracle - NVL
      • MySQL - IFNULL
    • 현재 날짜 및 시간 확인 함수
      • Oracle - SYSDATE
      • MySQL - NOW()
    • 날짜 포맷 변환
      • Oracle - TO_CHAR
      • MySQL - DATE_FORMAT
    • 요일 변환의 숫자 범위
      • Oracle - 일,월,화,수,목,금,토 -> 1,2,3,4,5,6,7로 인식
      • MySQL - 일,월,화,수,목,금,토 -> 0,1,2,3,4,5,6으로  인식
    • 문자와 문자 합치는 방법
      • Oracle - ||
      • MySQL - CONCAT
    • 형변환 방법
      • Oracle - TO_CHAR
      • MySQL - CAST
    • 페이징 처리
      • Oracle - ROWNUM
      • MySQL - LIMIT
    • 시퀀스 사용시 다음 번호 불러오는 방법
      • Oracle - 시퀀스명.NEXTVAL
      • MySQL - 시퀀스명.CURRVAL
    • 조건식 (IF)
      • Oracle - DECODE
      • MySQL - IFNULL
    • 문자열 자르기
      • Oracle - SUBSTR
      • MySQL - SUBSTRING

 

 

🙏 참조 ::

반응형