今更ながらですが、今年(2018)の4月にMySQL8.0の製品版がリリースされました。
色々と新規、改善された機能があるのですが、個人的にはMySQL 8.0: MySQL 5.7よりも最大2倍高速という所が気になり、ちょっと試してみました。
前提
- 環境
- AWS EC2 t2.small(vCPU1 メモリ2GB) ×2(5.7と8.0でサーバーを分ける)
- AMI Amazon Linux AMI 2018.03.0 (HVM), SSD Volume Type
- MySQL 5.7.23、8.0.12 (すべてデフォルト設定)
- 検証ツール
-
sysbench 1.0.15
準備
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'
create database benchmark;
- sysbenchでデータの作成(レコードは100万行)
sysbench --db-driver=mysql \
--mysql-host=localhost \
--mysql-user=root \
--mysql-password=password \
--mysql-db=benchmark \
--table_size=1000000 \
oltp_read_write \
prepare
測定(30秒間でのトランザクション数)
sysbench --db-driver=mysql \
--mysql-host=localhost \
--mysql-user=root \
--mysql-password=password \
--mysql-db=benchmark \
--time=30 \
--threads=1 \
oltp_read_only \
run
|
MySQL5.7 |
MySQL8.0 |
1回目 |
20836 (694.45 per sec.) |
19619 (653.89 per sec.) |
2回目 |
22860 (761.93 per sec.) |
19946 (664.79 per sec.) |
3回目 |
22461 (748.63 per sec.) |
19821 (660.64 per sec.) |
4回目 |
22980 (765.93 per sec.) |
19832 (661.00 per sec.) |
5回目 |
23061 (768.61 per sec.) |
19897 (663.16 per sec.) |
sysbench --db-driver=mysql \
--mysql-host=localhost \
--mysql-user=root \
--mysql-password=password \
--mysql-db=benchmark \
--time=30 \
--threads=1 \
oltp_write_only \
run
|
MySQL5.7 |
MySQL8.0 |
1回目 |
14603 (486.72 per sec.) |
6686 (222.82 per sec.) |
2回目 |
15425 (514.10 per sec.) |
6684 (222.78 per sec.) |
3回目 |
15683 (522.69 per sec.) |
6798 (226.55 per sec.) |
4回目 |
14369 (478.90 per sec.) |
6772 (225.70 per sec.) |
5回目 |
15671 (522.31 per sec.) |
6750 (224.96 per sec.) |
sysbench --db-driver=mysql \
--mysql-host=localhost \
--mysql-user=root \
--mysql-password=password \
--mysql-db=benchmark \
--time=30 \
--threads=1 \
oltp_read_write \
run
|
MySQL5.7 |
MySQL8.0 |
1回目 |
7428 (247.57 per sec.) |
4410 (146.98 per sec.) |
2回目 |
7851 (261.68 per sec.) |
4632 (154.37 per sec.) |
3回目 |
7907 (263.54 per sec.) |
4533 (151.07 per sec.) |
4回目 |
8002 (266.69 per sec.) |
4745 (158.15 per sec.) |
5回目 |
8029 (267.61 per sec.) |
4574 (152.44 per sec.) |
感想
あれ?MySQL8.0の方が遅い・・・?
検証しているサーバーが逆じゃないか、何度も確かめたがやはり間違いはなかった。
結果だけ見ると特にwrite系の処理で差が出ているように見える。
デフォルトの設定でチューニングも何もしていないからか、チューニング次第で速くなるのかな?それとも他の要因?
もしそうであればもう少し調査してから実運用を検討したい。
参考
追記
- 10/4 Enterprise editionではなくCommunity editionで計測したので、そこの違いかもしれません