シス、再び受託でDB屋さんと流浪する人のブログです。時間計測したいけど、結果の行表示とか余計なものは全くいらない、ってケースありますよね。性能検証やってるときとか。何百行何千行も取れるようなSQL流すと、表示するのも萎える。pager有効だと「--More--」って出て止まる。中身のあること書いてなかったことを、過去ブログ見て思い返すなど。ブログの更新頻度は、2018年の15本に対して2019年は24本と伸びているのですが、ここ2ヶ月サボってますね。今回のメンテナンスリリースは盛りだくさんです。Weeklyを確認してください。2週間平日連載?で10回に分けて書いてきた「HammerDBをCLIで使う」のエントリのリストです。DATAコマンドとか、PostgreSQLのCOPYコマンドとか。HammerDBのドキュメントの中でも、そういったツールを使うことを推奨しています。「MySQLにTPC-H」「PostgreSQLにTPC-H」とほぼ一緒です。前回の「MySQLにTPC-H」とほぼ一緒です。淡々と進めていきましょう。ここからは、分析系クエリのベンチマーク「TPC-H」です。やりかたは、TPC-Cとほとんど同じなので、淡々と進めていきます。このHammerDBには、ベンチマークテストを繰り返し自動実行する「Autopilot」機能がついています。「異なる数のユーザー数で、同じテストを繰り返す」というケースに対応するものです。流れはやっぱりおなじです。Redisで業務的な意味でのトランザクションを扱うイメージあんまりないですが、ツールとして対応しているので、ためしておきたいなと。流れはMySQLやPostgreSQL同じですが、やっぱりパラメータがちょっと違います。順を追ってみていきましょう。流れはMySQLと同じですが、パラメータがちょっと違います。順を追ってみていきましょう。どのDBに対して、どのワークロードをかける場合でも共通ですが、まずは「MySQLにTPC-C」を実行して、その流れを見ておきます。GUIで一度経験しておくと、イメージがよりつかみやすいかもしれません。HammerDBは、フリーでOSSなDBMSベンチマークソフトです。Notebook環境構築エントリとか、世の中に溢れかえっているのは承知の上なんで、ほぼ自分用の備忘です。未来の自分に語りかけてます。この手順、絶対忘れる。SELECTのWHEREの条件の「右辺」に、RAND()やSYSDATE()のような非決定性関数を使うと、想定外のことが起こる。戻ってくる行数が想定と異なる。Indexが効かなくなる。どっちもなかなかのインパクトです。PostgreSQLの特徴的なところだと思います。なんなら最初から入っていてくれよ、と愚痴りたくなる程度に、結構めんどくさかったので、備忘録的な意味合いで残しておこうかと。soudai.hatenablog.comなお、InnoDB限定のお話ですよ。MyISAMを(システムテーブル以外で)使ったことない若輩者なので。余裕がないこともあり、思いつく最小限のことだけ書きます。前に触ったのは、8.1.2~8.1.6くらいだったと思います。その間、非エンジニア業もやってた(企画系および管理系)ので、完全に忘れてた。謙虚に入門したいと思います。