250407 TIL #629 SQL 튜닝 #1 RDBMS 종류

김춘복·2025년 4월 4일
0

TIL : Today I Learned

목록 보기
633/636

Today I Learned

SQL 튜닝과 관련된 책을 사서 공부하는 중이다.
거의 풀스택으로 일하고 있는데 SQL을 다룰 일이 코드만큼 많다.
조금 더 스탭업하기 위해 팀장님께 추천받은 책으로 앞으로 쭉 공부해서 정리해보려한다.


RDBMS 비교

1. MySQL

특징

  • 개발사: 오라클(Oracle) 소유의 오픈소스 DBMS
  • 엔진 구조: 다중 스토리지 엔진(InnoDB, MyISAM 등) 지원
  • 확장성: 클러스터링(MySQL Cluster), 레플리케이션(비동기·반동기) 기능 제공

장점

  • 높은 가용성: InnoDB의 ACID 준수 및 트랜잭션 지원으로 안정성 높음
  • 쉬운 사용성: 설치·운영이 간단하고, 방대한 문서와 커뮤니티 지원
  • 성능 최적화: 쿼리 캐시, 인덱스 힌트 등 다양한 튜닝 옵션 제공

단점

  • 기능 제한: PostgreSQL 대비 JSON·GIS 등 고급 기능이 부족함
  • 라이선스 리스크: 오라클 정책 변경 시 오픈소스 커뮤니티에 영향 발생 가능
  • 쓰기 성능 병목: 동시 쓰기 작업이 많을 경우 성능 저하 발생할 수 있음

2. MariaDB

특징

  • 개발사: MySQL 창시자들이 오라클 인수 이후 포크하여 개발
  • 라이선스: 완전한 오픈소스(GPL) 유지
  • 스토리지 엔진: MyRocks, Aria, ColumnStore 등 고성능·분석용 엔진 추가
  • 호환성: MySQL과 높은 호환성을 유지하여 마이그레이션 용이

장점

  • 성능 향상: 쓰기 집중 워크로드에 최적화된 MyRocks 엔진으로 IO 효율 개선
  • 오픈소스 확장: 커뮤니티 주도 기능 추가가 활발하며, 플러그인 구조로 확장성 우수
  • 라이선스 안정성: 오라클 의존성 제거로 장기적 오픈소스 보장

단점

  • 커뮤니티 규모: MySQL에 비해 사용자·기여자 수가 상대적으로 적음
  • 기업 지원: 오라클 지원이 아닌 MariaDB 재단 및 상용 지원 옵션에 의존
  • 버전 호환성 이슈: 일부 오래된 MySQL 기능이 완벽히 동작하지 않을 수 있음

3. PostgreSQL

특징

  • 개발사: 커뮤니티 주도 오픈소스 프로젝트
  • 라이선스: PostgreSQL 라이선스(유사 BSD)로 상업적 이용에 제약 없음
  • 확장성: 확장형 타입·함수·언어 지원, 플러그인으로 기능 추가 용이
  • 표준 준수: SQL 표준을 엄격히 준수하며, 고급 트랜잭션 격리 수준 제공

장점

  • 고급 기능: JSONB, PostGIS, 논리 복제 등 다양한 내장 기능 제공
  • 안정성·일관성: MVCC 구조로 동시성 제어 우수, 대용량 데이터 처리에 강함
  • 확장성: 사용자 정의 타입·인덱스·함수 등을 통해 맞춤형 DB 구축 가능

단점

  • 운영 복잡도: 튜닝 파라미터가 많아 초보자에게 학습 곡선이 높음
  • 쓰기 성능: 쓰기 작업이 많을 때 WAL(Write-Ahead Logging)로 인한 오버헤드 발생
  • 상용 지원: EnterpriseDB 등 별도 상용 솔루션 이용 시 비용 발생

4. Oracle Database

특징

  • 개발사: 오라클(Oracle Corporation)에서 개발·유지
  • 라이선스: 상용 라이선스만 제공하며, 에디션(Express, Standard, Enterprise)별 기능 차별화
  • 아키텍처: 멀티테넌트(Pluggable Database), RAC(Real Application Clusters)로 고가용성 보장
  • 보안: 데이터 마스킹, 투명 데이터 암호화, 감사 기능 등 엔터프라이즈급 보안 제공

장점

  • 기업용 기능: 대규모 트랜잭션·분산 환경에 최적화된 성능·확장성 제공
  • 강력한 지원: 오라클의 전세계적 기술 지원 및 에코시스템 활용 가능
  • 고가용성: RAC, Data Guard 등으로 무중단 운영 보장

단점

  • 높은 비용: 라이선스 및 유지보수 비용이 매우 높음
  • 복잡성: 설치·설정·운영이 복잡하며, 전문 DBA 필요
  • 폐쇄형 생태계: 오픈소스 연동 시 제한적이며, 벤더 종속 위험이 있음

5. 비교 요약

항목MySQLMariaDBPostgreSQLOracle Database
라이선스GPL/상용GPLPostgreSQL 라이선스상용
주요 특징다중 엔진, 쉬운 사용MyRocks, 오픈소스 확장JSONB, PostGIS, 확장형RAC, Pluggable DB
장점사용·튜닝 용이성능·라이선스 안정고급 기능·안정성기업용 기능·지원
단점기능 제한커뮤니티 규모 작음튜닝 복잡비용·복잡성 높음

결론

  • 소규모 웹 서비스: MySQL 또는 MariaDB 추천
  • 데이터 분석·공간 데이터: PostgreSQL 적합
  • 미션 크리티컬·대규모 트랜잭션: Oracle Database 고려
profile
Full-Stack Dev / Data Engineer

0개의 댓글