PostgreSQL(포스트그레스큐엘)은 객체-관계형 데이터베이스 시스템(ORDBMS)이다. 테이블 상속, 함수 오버로딩 등의 기능을 갖추고있으며 복잡한 쿼리와 대규모 데이터베이스를 다룰 수 있도록 한다.
PostgreSQL은 현재 세계에서 가장 많이 쓰이는 DBMS 중 하나이다. 다양한 프로그래밍 언어 및 어플리케이션을 지원하여 여러 DBMS 중에서도 특히 개발자들이 선호해 충성도가 높은 편이고, 오픈소스 커뮤니티 또한 상당히 활성화되어 있다. 전 세계에서 개최되는 컨퍼런스나 세미나도 꾸준한 편이다.
PostgreSQL은 이러한 장점들을 가지고 있다.
가장 오랜 기간 개발을 거친 PostgreSQL은 관계형 DB 중에서 최다 SQL을 지원한다.
SQL : 2016 또는 ISO/IEC 9075:2016은 SQL 데이터베이스 쿼리 언어에 대한 ISO 및 ANSI 표준의 8번째 개정판으로 2016년 12월에 공식적으로 채택되었는데, PostgreSQL은 전체의 179 항목 중 170 항목인 약 95%의 SQL 표준을 지원한다.
일부 NoSQL을 포함한 다양한 데이터 유형을 지원한다.
- Key-Value, XML
- JSON, JSONB
- Columnar Store
- Graph
PostgreSQL은 다음과 같은 기능덕에 대량 데이터 처리가 가능하다.
- Table Partitioning
- Parallel query & multiple processes
- analytic & aggregate functions
- indexing & JOIN
MySQL과 PostgreSQL은 모두 현재 제공되고 있는 DBMS 중 가장 빠른 시스템으로 잘 알려져 있다. 그러나 둘 중 어느 것이 더 빠른가에 대한 대답은 명확하지 않다. 각 DB의 성능은 주로 어떤 트랜잭션을 사용하는지, 어떤 유형의 쿼리가 많이 발생되는지에 따라 달라질 수 있다. TechTarget에서 Scott Noves가 설명한 바에 따르면,
하드웨어, 구성 등의 환경이 일정하다면 따라 어느 한 데이터베이스를 다른 데이터베이스보다 좋다라고 할 만한 기준은 쉽게 찾을 수 있다. 한 데이터베이스는 메모리가 거의 없는 싱글 코어 프로세서에서 더 나은 성능을 발휘하는 반면, 다른 데이터베이스는 멀티 코어 프로세서로 확장되는 이점을 더 잘 활용할 수 있다. 한 쪽은 읽기에 우수하고 다른 하나는 쓰기에 유리하다.
TechTarget에 따르면, 속력 테스트에서 상반되는 결과가 도출된다. 예를 들어 Windows Skills에서는 MySQL이 속도가 더 빠르다고 하고 Benchw는 PostgreSQL이 더 빠르다. 즉, 속도는 데이터베이스를 사용하는 방식에 따라 달라진다.
현재로서 PostgreSQL은 대량의 데이터 집합, 복잡한 쿼리, 읽기-쓰기 작업을 처리할 때 더 빠른 것으로 알려져 있고, 그에 반해 MySQL은 읽기 전용 명령을 사용할때 더 빠르다고 알려져 있다.
복잡한 쿼리와 대규모 데이터베이스를 다룰 수 있는 기능이 풍부한 데이터베이스가 필요하다면 PostgreSQL를, 설치와 관리가 비교적 쉽고, 빠르고, 안정적이며, 레퍼런스가 많은 간단한 데이터베이스가 필요하다면 MySQL을 사용할 수 있다.