PostgreSQL은 2024 Bestarion 기준 Oracle, MySQL에 이은 세 번째로 많이 사용되는 데이터베이스로,
한국과는 달리 북미와 일본에서 사용률이 높습니다.
대표적으로 Uber, Netflix, Instagram, Spotify, reddit 등 많은 사이트가 PostgreSQL을 사용합니다.
오픈 소스
PostgreSQL은 BSD, MIT와 비슷한 관대한(liberal) 오픈 소스 라이선스로 일본에서는 상용은 Oracle, 무료는 PostgreSQL을 쓴다는 말이 있습니다.
높은 확장성
PostgreSQL은 사용자 정의 데이터 타입, 함수, 연산자 등 추가가 가능하므로 유연한 확장이 가능합니다.
ACID 준수로 인한 높은 데이터 안정성
데이터베이스 상태를 변화시키기 위한 단위인 트랜잭션의 ACID(원자성, 일관성, 고립성, 지속성)을 보장하여 데이터 안정성이 높습니다.
다양한 데이터 유형 지원
JSON, Key-Value, Graph, XML 등 풍부한 데이터 유형을 지원합니다.
다양한 프로그래밍 언어 지원
PL/Python, PL/pgSQL, PL/Java, PL/Ruby 등 다양한 언어를 통해 사용자 정의 함수를 작성할 수 있습니다.
다중 버전 동시성 제어 (MVCC)
MVCC는 수정중인 데이터와 원본 데이터를 동시에 유지하고 버전을 다르게 관리해 이를 통해 일관성을 유지합니다. 이를 통해 트랜잭션 간 충돌을 최소화합니다.
여러 가지 인덱스 타입 제공
B-tree, Hash, GIST 등 각 인덱스 타입은 서로 다른 알고리즘을 제공하고 이를 통해 성능을 최적화합니다.
PostgreSQL | MySQL | |
---|---|---|
DBMS | 객체 관계형 DBMS (ORDBMS) | 관계형 DBMS (RDBMS) |
ACID 준수 | 완전 준수 | InnoDB 사용 시 ACID 지원하지만, 다른 엔진은 제한적 지원 |
동시성 제어 | MVCC 사용 | MVCC 제공하지 않음 |
크로스 플랫폼 | UNIX 기반 최적화 | 크로스 플랫폼 대응 |
기능 | JSON, GIS(지리 정보 시스템) 등 복잡한 데이터 처리에 유리 | PostgreSQL에 비해 부족한 고급 데이터 처리 기능 |
성능 | MySQL에 비해 떨어지는 복잡한 쿼리에 대한 성능 | 단순 쿼리와 읽기 작업에 최적화 |
MySQL은 빠른 읽기 성능과 간편한 설정으로 웹 앱에 적합합니다.
반면, PostgreSQL은 복잡한 데이터 처리와 트랜잭션을 요구하는 애플리케이션에 적합합니다.
또한, 북미와 일본에서 인기 많은 데이터베이스로 외국계 기업, 해외 취업 등에서도 큰 이점이 될 수도 있다고 생각합니다.
다양한 기술을 학습하여 상황에 따라 사용할 수 있는 개발자가 되자🎈