[Rails] query-reviewerでRailsアプリのボトルネックを見つける

 query-reviewerRails用のプラグインで、データベースに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に対する指摘
    • 検索にインデックスが使われていない
    • インデックスとして使われているカラムの文字列長が長すぎる

 実際、このプラグインを試してみると、いくつかインデックスを張り忘れているところがあった。インデックスの張り忘れとか、インデックスが使えてないかとか、そういったチェックにはとても使いやすい。とにかく手軽なところがいいなと思った。