Mysql과 Oracle 비교

Hoo-Sung.Lee·2024년 9월 10일
0

Database

목록 보기
14/18

Mysql과 Oracle의 지원기능 차이

Mysql

  • 대부분 중첩 루프 조인(Nested Loop Join)을 수행
  • NL 조인 뿐아니라 더 효율적인 쿼리를 수행하고자 Mysql 8.0.18버전에서도 제약적으로 해시 조인을 제공하기도 한다.
  • Oracle과 달리 데이터를 저장하는 스토리지 엔진이라는 개념을 포함하므로 오픈소스 DBMS를 바로 꽂아서 사용할 수 있는 확정성이 있다.(InnoDb, myIsb...)
  • Oracle 대비 메모리 사용률이 상대적으로 낮아 사양이 낮은 컴퓨팅 환경에서도 설치하여 서비스 가능
    심지어 1MB 메모리 환경에서도 데이터베이스를 운영할 수 있을만큼 오버헤드가 작다.

Oracle

  • NL 조인 뿐아니라, 정렬 병합 조인(sort merge join), 해시 조인(hash join) 방식도 제공한다.

Mysql과 Oracle의 구조적 차이

Mysql과 Oracle은 기본적으로 데이터가 저장되는 스토리지의 구조 측면에서 큰 차이를 보인다.
Oracle DB 구조

위는 일반적인 Oracle DB 구조이다. Oracle DB는 통합된 스토리지 하나를 공유하여 사용하는 방식이다.
공유 스토리지를 사용하므로 사용자가 어느 DB 서버에 접속하여 SQL문을 수행하더라도 같은 결과를 출력하거나 동일한 구문(SELECT, INSERT, UPDATE,DELETE)을 처리할 수 있다.
Mysql DB 구조
반면 위의 Mysql은 독립적인 스토리지 할당에 기반을 둔 만큼 이중화를 위한 클러스터나 복제 구성으로 운영하더라도 보통은 마스터-슬레이브 구조를 가진다.
애플리케이션을 통해 쿼리 오프로딩(query offloading)이 적용된다.
즉, 마스터 노드에서는 UPDATE, INSERT,DELETE를 수행하고 슬레이브 노드에서는 SELECT를 수행한다.
그러므로 SELECT문에 대한 쿼리 튜닝을 슬레이브 노드에서 수행하는 것과 같이 적합한 서버에 접근하여 쿼리를 튜닝하는 것이 매우 중요하다.

쿼리 오프로딩
DB 서버의 트랜잭션에서 쓰기(WRITE) 트랜잭션과 읽기(READ) 트랜잭션을 분리하여 DB 처리량을 증가시키는 성능 향상 기법을 말한다.

profile
Working towards becoming Backend-Developer

0개의 댓글