본문 바로가기
연구노트

SingleStoreDB, PostgreSQL, MySQL 간단 조회 성능 비교

by 에이플랫폼 [Team SingleStore Korea] 2023. 9. 7.

안녕하세요.

이번에 간단하게 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 을 이용해 가장 최신 버전을 설치하고 성능을 위한 별도의 튜닝은 하지 않았습니다.

데이터 로딩은 각각의 데이터베이스에서 제공하는 Tool 을 사용하였고 대략적인 로딩 시간은 아래와 같습니다.

ㆍSingleStoreDB : 약 2분

ㆍPostgreSQL : 약 19분

ㆍMySQL : 약 16분


모든 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

0. Table Count

1. Query 1

2. Query 2

3. Query 3

4. Query 4

위 테스트를 따라할 수 있는 Step-by-Step 설명은 추후에 정리되는 대로 별도로 게시하도록 하겠습니다.

 

Query 2 의 실행계획을 살펴 보면 MySQL 이 PostgreSQL 에 비해 느린 이유를 알 수 있습니다.
  • SingleStore는 컬럼스토어 테이블에 대한 Parallel Scan
  • PostgreSQL은 로우스토어 테이블에 대한 Parallel Scan
  • MySQL만 로우스토어 테이블에 대한 Serial Scan