본문 바로가기
데이터베이스

PostgreSQL vs MySQL, 오픈소스 db 뭐가 더 좋을까?

by 데이널 2024. 7. 2.

최근에 있었던 일입니다. 오픈소스 database를 선택에 대한 고객의 문의였죠. MySQL을 사용할지, PostgreSQL을 사용할지 모르겠다는 이야기였죠. 나는 프로젝트에서 두 database 모두 사용해 봤지만 그 장단점에 대해서는 생각해 보지 않았습니다. 오픈소스이기 때문에 상용 dbms 보다 성능이 좋지 않은 정도로 알고 있었던 같습니다. 
 
하지만 요즘에는 Oracle보다 PostgreSQL이나 MySQL 데이터베이스 기반으로 프로젝트를 많이 하게 됩니다. 그래서 다른 시니어 컨설턴트에게 전화를 해서 물어보았죠.

나 : 저번 프로젝트에서 PostgreSQL을 사용한 걸로 아는데 왜 선택했나요?
그 : Oracle에서 PostgreSQL 전환 프로젝트라 SQL 구문 유사도 때문에 사용했어요.

그는 PostgreSQL이 오라클의 SQL 구문과 유사한 것이 많아 더 선호한다는 말을 전해왔습니다. 그래서 이번 기회에 두 데이터베이스를 비교해 보기로 했습니다. 

 

PostgreSQL vs MySQL
PostgreSQL vs MySQL

 

SQL 측면의 비교

진짜 SQL구분 측면에서 PostgreSQL이 더 강점이 있을까?
조사해본 결과 PostgreSQL은 오픈소스 중 가장 많은 표준 ansi sql를 지원합니다. 예를 들어, 분석함수라고 부르는 윈도우 함수도 PostgreSQL이 더 많이 지원하고 있었습니다. 그래서 많은 사용자가 오라클과 sql 문법이 비슷하다고 생각을 하게 되는 거죠. 그에 비해 MySQL의 SQL구문 지원은 오픈소스 중 중간 정도에 위치하고 있습니다.  
 

JSON, NoSQL 지원 측면

이번에는 JSON과 NoSQL 지원에 대해 알아봤습니다. 요즘 확장성 측면에서 중요하기 때문이죠. PostgreSQL은 Json 및 xml 지원, NoSQL 지원(key-value 방식), JSON 인덱싱을 지원합니다.

 

하지만 MySQL은 Json 및 xml 일부 기능만 지원, JSON 인덱싱을 지원하지 않습니다. 이 부분은 PostgreSQL이 나은 듯 하네요. NoSQL이 rdbms와 어떻게 다른지는 링크를 확인하시기 바랍니다. 
 

성능 측면의 비교

그럼 이제 성능적인 측면을 알아볼까요? 두 dbms간에 성능 테스트한 결과 MySQL은 read에 강점이 있습니다. 그리고 PostgreSQL는 write, update 더 좋은 성능을 내죠. 그리고 전반적으로 성능은 PostgreSQL 더 낫다는 결론이 났습니다.

갑자기 두 dbms의 다른 한계는 없는지 궁금해지는데요. 그래서 좀 찾아봤습니다. 테이블 당 최대 칼럼 개수는 PostgreSQL은 1,600개, MySQL은 1,017개까지 생성할 수 있는 제한이 있었습니다. MySQL의 경우 테이블 파티션 생성 개수에도 8,192개만 만들 수 있더군요. 
 

시장 점유율은 누가?

여기까지 조사하고 ‘PostgreSQL의 점유율이 더 높지 않을까?’ 하는 생각을 했습니다. 

 

오픈소스 dbms 점유율
오픈소스 dbms 점유율(출처: Statista)


그런데 시장 점유율을 보니, MySQL, PostgreSQL, MongoDB, Redis, Elasticsearch 순이었습니다. 이상하다는 생각이 들더군요. 여러 측면에서 PostgreSQL이 더 앞서는데, 사람들은 MySQL를 더 많이 사용한다는 말이죠. 그 이유는 무엇일까요?
 
이유는 MySQL이 더 일찍 출시(1995년)되어 사람들에게 더 익숙하다고 합니다. 그러고 보니 나도 MySQL 아키텍처에  더 친숙했었네요. 그리고 또 한가지는 설치와 설정이 쉽다는 이유였습니다. 역시 사람들은 편한 것을 좋아하는 것은 진리 이군요. DB-Engines에 대한 랭킹을 보고 싶다면 링크를 참고하시기 바랍니다.   
 

사용 기업과 사례는?

그렇다면 어떤 회사에서 사용하고 있을까? MySQL은 구글, 링크드인, 아마존, 네플릭스, 트위터 등에서 사용하고 있더군요. 가장 많은 시장성을 가졌습니다.

PostgreSQL 역시 인스타그램, 시스코, 스카이프, 이케아 등 꽤 많은 회사에서 사용하고 있습니다. 그렇다면 왜 이렇게 많은 글로벌 회사에서 오픈소스 dbms를 사용하고 있는 것일까?
 

마치며

오픈소스 dbms를 사용하는 가장 큰 이유는 비용이 싸기 때문입니다. 글로벌 기업도 비용 효율적인 부분을 따집니다. 또 한가지는 대규모 Legacy 시스템이 아닌 읽기 작업이 많은 시스템에서 MySQL, PostgreSQL는 좋은 대안입니다.

 

특히 웹 개발과 더불어 베스트 사례가 나올 수 있다. 결론적으로 전통적인 상용 dbms(오라클, MSSQL)이 확장성의 한계에 부딪치면서 오픈소스 dbms가 대안으로 부상하고 있습니다.