SQL에 대해 공부하다보면 이 3가지 SQL을 많이 볼 수 있다. 이 세 가지는 모두 관계형 데이터베이스지만 기능, 성능 최적화 방법 등이 다르다.
PL/SQL이라는 자체 프로그래밍 언어를 기반으로 복잡한 로직을 내부에 구현할 수 있다.| 항목 | PostgreSQL | MySQL | Oracle |
|---|---|---|---|
| 확장성 | 함수, 타입, 인덱스 사용자 정의 가능 → 강력한 ORDBMS 기능 | 기능 확장 제약 있음 | 자체 PL/SQL 기반 확장 가능 |
| NoSQL 기능 | JSON, JSONB, GIN 인덱스 등 강력 | JSON 지원은 있으나 기능 약함 | Oracle JSON 지원은 상용 옵션 |
| 복잡 쿼리 최적화 | CTE, 윈도우 함수, 서브쿼리 강력 | 복잡한 쿼리에선 성능 저하 | 고급 옵티마이저 존재 |
| 병렬 처리 | 병렬 쿼리, 병렬 집계 지원 | 병렬 처리 제한적 | 고급 병렬 쿼리 지원 |
| 복제 | Streaming Replication, Logical Replication 등 | 기본 복제 + Group Replication | Oracle RAC (Real Application Cluster) |
| 트리거/프로시저 | PL/pgSQL, Python 등 지원 | 제한된 트리거/프로시저 기능 | PL/SQL 사용 (강력하고 안정적) |
어떤 데이터베이스가 좋다고 단순히 구분할 순 없다. 각 개발 목적에 맞춰 알맞은 데이터베이스를 선택하면 된다!