はじめに
Amazon RDS for MySQL の RDS データベースプレビュー環境 にて、MySQL 8.4 を使って比較してみた
目次
手順の概要
- 各種AWSインスタンスの用意
- sysbench-tpcc のインストール
- sysbenchのサンプルDBデータの投入
- ベンチマーク実行
実行環境
Rocky Linux 9
手順
各種AWSインスタンスの用意
RDS単体ではベンチマークはないので、何らかのDBベンチマークの用意が必要です。
今回はLinuxで簡単に用意できるsysbench-tpccを採用しました。
RDS データベースプレビュー環境 は US East ((Ohio)us-east-2 ) のリージョンでのみ利用可能ですので、
こちらのリージョンで下記機器の用意をしました。
●リージョン
us-east-2 (オハイオ)
●EC2
m7i.xlarge
( Rocky Linux 9.0 、個人的に好みのOSで 深い理由はないです。RHEL9やAlmaLinux9でも本試験は同様に実施可能な見込みです)
- EBS : gp3 30GB
- MySQLクライアント : mysql-community-client-8.4.2-1.el9.x86_64.rpm ※MySQL CommunityのRHEL9向けリポジトリ利用
- ベンチマークソフト : epelリポジトリの sysbench 1.0.20 を利用。
●RDS
1. MySQL 8.4.1 db.m6i.large S-AZ gp3 100GB (RDS データベースプレビュー環境版)
2. MySQL 8.0.39 db.m6i.large S-AZ gp3 100GB (通常公開されているもの)
sysbench のインストール
Linux中にて下記コマンドにてsysbench 及び必須コマンドのインストールを実施
1 2 3 4 |
sudo dnf install epel-release sudo dnf install sysbench git sudo dnf install https://dev.mysql.com/get/mysql84-community-release-el9-1.noarch.rpm sudo dnf install mysql mysql-devel |
作業用ディレクトリの作成と移動
1 2 |
mkdir ~/prj cd ~/prj |
最新リポジトリのclone
1 |
git clone https://github.com/Percona-Lab/sysbench-tpcc.git |
サンプルDBデータのDB作成
1 2 3 4 5 6 7 |
※以降、 ${rds-endpoint} の部分はRDSエンドポイントに置換 ${rds-dbusername} の部分はDBユーザに置換 ${rds-dbuserpass} の部分はDBユーザのパスワードに置換 としてください。 mysql -u${rds-dbusername} -p${rds-dbuserpass} -h${rds-endpoint} -e "create database sbtest2;" |
サンプルDBデータの投入
1 |
./tpcc.lua --mysql-host=${rds-endpoint} --mysql-user=${rds-dbusername} --mysql-password=${rds-dbuserpass} prepare |
ベンチマーク実行
1 |
./tpcc.lua --mysql-host=${rds-endpoint} --mysql-user=${rds-dbusername} --mysql-password=${rds-dbuserpass} run |
ベンチマーク結果
3回計測し、平均いたしました。
MySQLversion | QueriesRead | QueriesWrite | QueriesOther | QueriesTotal | transactions | queries |
---|---|---|---|---|---|---|
8.0 | 3044 | 3187 | 477 | 6708 | 237 (23.68 per sec.) | 6708 (670.20 per sec.) |
8.4 | 4421 | 4567 | 705 | 9693 | 351 (35.09 per sec.) | 9693 (968.96 per sec.) |
注目すべきは
transactions と queries になります。
これは処理できたトランザクションおよびクエリ数になっており、実際のDBレスポンスの使用感に直結することが多い値になります。
MySQL8.4の結果がMySQL8.0の結果の25%ほど早い結果になっています。
まとめ
将来的にMySQL8.4の利用が必須な時代が来た場合、ストレージエンジンやパラメータ値が適切であれば
MySQL8.4に変更するだけでデータベースの動作高速化を狙うことができる可能性があります。
安定版として利用可能となった場合、積極的に使用していきたいですね
投稿者プロフィール
-
2013年入社の平成生まれです。
初めて触ったコンピュータはPC9821でダイヤルアップでした。
その時に鯖落ちや人大杉の対応をしてくださる鯖缶になりたいと憧れ、
みなさんのお役に立てればと思っております!
#今では個人所有のパソコン・サーバだけで20台ほどあります…。
サーバー大好き!