간단하게 SingleStoreDB, PostgreSQL, MySQL 의 3가지 Database 를 동일한 장비에서 동일한 테이블과 SQL을 이용하여 조회 성능 비교를 해 보았습니다.
장비 사양은 8vCPU, 32GB Memory, 100GB Boot Volume 입니다.
데이터셋은 CC By 4.0 License 를 가지고 있는 Stefan Proell, Eva Zangerle, Wolfgang Gassler 가 만든 Flughafen DB(https://github.com/stefanproell/flughafendb) 를 기초로 한 mysql 의 airportdb(https://dev.mysql.com/doc/airportdb/en/airportdb-introduction.html) 를 사용하였습니다.
모든 데이터베이스는 yum 을 이용해 가장 최신 버전을 설치하고 성능을 위한 별도의 튜닝은 하지 않았고 Query 는 Parsing 및 Cache 오버헤드의 영향을 최소화하기 위해 각각 두 번 연속 수행하고 두번째 결과를 캡쳐했습니다.
SingleStoreDB, PostgreSQL, MySQL 순서로 조회 성능이 측정되었습니다.
단위 : 초 | SingleStoreDB | PostgreSQL | MySQL |
---|---|---|---|
Query 1 | 0.32 | 2.696 | 16.03 |
Query 2 | 0.06 | 2.756 | 18.36 |
Query 3 | 1.16 | 3.110 | 31.38 |
Query 4 | 0.08 | 3.181 | 104.17 |
실행계획을 살펴 보면 MySQL 이 PostgreSQL 에 비해 느린 이유를 알 수 있습니다.