MySQLでTPC-B likeなテストを実行するツールを作った

MySQLでpgbenchと同じようなTPC-B likeなテストを実行するツールを書いた。

github.com

これは何?

pgbenchと同様のtcpb-likeなテストを実行する負荷テストツール。

github.com

pgbenchとだいたい同じSQLが実行されると思うが、TPC-Bの仕様をきちんと満たしているかは不明。

先日の記事MySQLでの同様のテストを行った場合の結果が気になったので作成してみた。 初期データの投入が遅かったりバグがなにかありそうだけれど、とりあえず簡単なテストではうまく動いた。

使い方

READMEにあるとおりで、pgbenchと似たような感じで使える。

$ qb -d root@/ -i -s 10
dropping old database...
creating database...
creating tables...
generating data...
analyzing tables...

$ qb -d root@/ -n 10
01:00 | 10 agents / run 2603958 queries (2559 tps)

{
  "DSN": "root@/",
  "StartedAt": "2022-05-08T17:36:46.173678+09:00",
  "FinishedAt": "2022-05-08T17:37:46.177411+09:00",
  "ElapsedTime": 60,
  "NAgents": 10,
…

PostgreSQLMySQLのきちんとした性能の比較にはならないが、同様のテストを両方で実行したい向きには手軽だと思う。

その他

かるーくMySQLエンジンでAuroraとRDSの比較を行ったが、PostgreSQLほど性能に差異がない感じだった。 追記型アーキテクチャはAuroraと相性悪いのかなぁ…よくわからない。