회사에서는 PostgreSQL로, 개인 연습용 프로젝트는 MySQL로 이렇게 사용하고 있는데, 이 둘의 차이점이 이름만 다르지 실제로 와닿지가 않아서 PostgreSQL을 회사 1년가까이 다니면서 많이 사용했기에
시간이 흐른 뒤 차이점을 보면서 정리를 해보려한다.
기능비교 | PostgreSQL 10 | MySQL 8 |
---|---|---|
공통 테이블 식(CTE) | YES | YES(새로 추가됨) |
선언적 파티셔닝 | YSE(새로 추가됨) | YES |
전체 텍스트 검색 | YES | YES |
지리 정보 시스템(GIS)/공간 참조 시스템(SRS) | YES | YES(업그레이드) |
JSON | YES | YES(업그레이드) |
논리 복제 | YES(새로 추가됨) | YES |
반 동기 복제 | YES(새로 추가됨) | YES |
윈도우 함수 | YES | YES(새로 추가됨) |
MySQL은 설치와 관리가 비교적 쉽고 빠르며, 높은 신뢰도와 쉽게 파악이 가능한 DB로 RDBMS(순수 관계형 DB)다.
세계에서 가장 많이 사용하는 DBMS로 빠르고, 안정적인 범용 관계형 데이터베이스 관리 시스템이다. PostgreSQL만큼 광범위한 기능은 없지만 다양한 애플리케이션 중 웹 애플리케이션에 매우 적합하다.
그 이유는 LAMP(Linux, Apache HTTP Server, MySQL, PHP) 스택의 표준 구성요소이기 때문이다.
MySQL은 안정적인 무료 오픈 소스 데이터베이스 관리 시스템으로 프로덕션 애플리케이션에서 사용이 가능하다. 개발자가 대규모 다중 계층 애플리케이션이 있는
프로덕션 애플리케이션 서버와 데스크톱에 설치하여 사용할 수 있는 경량의 데이터 베이스다. Windows, Linux, Mac과 같이 모든 플랫폼에서 설치가 가능하고, 보안성이 뛰어나다.
Postgres는 복잡한 Querys나 대규모 DB를 다룰 수 있는 기능이 풍부한 DB다. 테이블 상속, 함수 오버로딩 등 기능을 갖춘 ORDMBS(객체 관계형 DB)다.
복잡한 대량의 데이터 작업을 수행하는 데 적합한 솔루션으로 많이 인식이 되어있다. 왜냐하면 특수한 데이터베이스 상황처리에 더 우수하기 때문이다.
PostgreSQL은 다른 데이터베이스 관리 시스템들보다 기능이 더 많다. 또한 카달로그 기반 적업이므로 확장 가능하다. 즉, 테이블과 열에 대한 정보를 단순히 저장만 하지 않고 사용자가 데이터 형식, 인덱스 형식, 함수형 언어를 정의할 수 있다.
그리고 PostgreSQL은 객체 관계형이고, ACID를 준수하며 동시 연결성이 높고, NoSQL 자원을 제공한다. (MySQL도 버전 8.0부터 NoSQL 자원 제공)