[Rails] query-reviewerでRailsアプリのボトルネックを見つける
query-reviewerはRails用のプラグインで、データベースにMySQLを使っている場合に、不適切な検索が行われていないかどうかを非常に簡単に調べることができる。(MySQL以外ではたぶん動かない。)使い方は非常に簡単で、
git clone git://github.com/dsboulder/query_reviewer.git vendor/plugins/query_reviewer
するだけ。設定等はまったくいらない。インストールすると、Railsアプリの左上に「SQL DISABLED」というボタンっぽいのが出てくるので、そこをクリックしてENABLEDに変えてからページにアクセスすると、SQLの実行結果を教えてくれる。
スクリーンショットは開発者のブログで見られる。
大体、以下のような情報が得られる。
- SQL EXPLAINの結果
- SQLの実行時間
- どれだけのSQLが1画面の生成に実行されたか
- 不適切なSQLに対する指摘
- 検索にインデックスが使われていない
- インデックスとして使われているカラムの文字列長が長すぎる
実際、このプラグインを試してみると、いくつかインデックスを張り忘れているところがあった。インデックスの張り忘れとか、インデックスが使えてないかとか、そういったチェックにはとても使いやすい。とにかく手軽なところがいいなと思った。