안녕하세요.
이번에 간단하게 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
'SingleStoreDB > 연구노트' 카테고리의 다른 글
On-Premises Llama 2 및 SingleStoreDB 를 이용한 생성형 AI 프로그램 예제 (1) | 2023.10.12 |
---|---|
Windows 10 WSL2 에 SingleStore 설치 (0) | 2023.09.28 |
M1 Mac 에 SingleStore 설치 (0) | 2023.09.14 |
SingleStoreDB 성능 이야기 (0) | 2023.08.31 |
SingleStoreDB Cloud 무료 사용법 (1) | 2023.08.31 |