What is PostgreSQL ?
PostgreSQL is a powerful, open source object-relational database system that uses and extends the SQL language combined with many features that safely store and scale the most complicated data workloads.
- What is PostgreSQL?
PostgreSQL 은 복잡한 데이터 워크로드를 안전하게 저장하기 위해 결합된 SQL 언어를 사용하고 확장하는 강력한 오픈소스 객체-관계형 데이터베이스 시스템(ORDBMS)이다. 완벽한 트랜잭션(ACID)과 높은 동시성 제어(MVCC)를 지원하여 효과적인 비용 관리가 가능하다고 한다.
나는 여태 MySQL 을 이용하였는데 앞으로의 업무에서는 PostgreSQL 을 주로 사용하게 될거 같다. MySQL 과 PostgreSQL 을 비교해본다면 PostgreSQL 에 대해 좀 더 자세하게 알 수 있을거 같아 두 data base 를 비교하면서 설명하려 한다.
먼저 MySQL 은 PostgreSQL 과 마찬가지로 오픈소스 이지만, 일부 버전에서는 유료 서비스를 제공한다. JSON 데이터 타입은 지원하지만 NoSQL 을 지원하지 않으며, 확장 또한 불가능 하다. 스토라지 엔진으로 InnoDB 와 NDB Cluster 를 사용할때에만 ACID 를 지원하며, MVCC 의 경우는 InnoDB 에서만 사용 가능하다. hash join 이나 merge join 이 없어 대량의 데이터를 처리할때에는 PostgreSQL 보다 성능이 다소 떨어진다. 그렇지만 PostgreSQL 보다 update 관련 성능이 좋다. 별도의 rollback segment 를 사용하기 때문이라고 한다. 또, 멀티 스레드를 이용하여 메모리 사용량이 더 낮다고 한다.
반면에 PostgreSQL 은 완전히 오픈소스인 데이터 베이스이다. NoSQL 과 JSON 형식 모두를 지원하고, SQL 확장에 있어 보다 더 자유로운 형태이다. 위의 설명처럼 ACID, MVCC 부분에서 MySQL 보다 더 뛰어난 서포트를 해주고, 대용량의 데이터를 처리하고 Insert 하는데에 있어 MySQL 보다 더 좋은 성능을 발휘할 수 있다. 그렇지만 빈번한 update 가 발생하는 서비스에 사용될 경우 over head 가 발생할 수 있다. 또, 멀티 프로세스 방식을 이용하므로 세션 당 메모리 사용량이 더 높다는 단점 또한 발생한다. 개인적으로 추가하자면 국내에서는 MySQL 보다 덜 사용되고 있어 관련 정보를 얻는 부분에서도 조금 더 노력이 필요하다는 단점도 추가해 볼 수 있겠다.