RailsにおけるMySQLのボトルネックを分析する「Palmist」
Railsは度々遅いということが話題に上がる。Ruby自体の性能もあるだろうが、データベースを富豪的に使っているのにも原因がある。便利であるためについついデータベースを多用していたり、データの取り出しを複雑(都度集計など)にしていないだろうか。
メイン画面
個人的な経験から言えばボトルネックになりがちなのはレンダリングとデータベースだ。このデータベースの問題点を洗い出すのに便利なのが、またしてもRailsアプリケーションだ。
今回紹介するフリーウェアはPalmist、RailsのMySQL実行履歴を見るソフトウェアだ。ソースはGithubで公開されているがライセンスは明記されていなかったので注意していただきたい。
Palmistは他のRailsアプリケーションのログファイルを読み取って、それを解析して表示してくれる。コントローラ、アクション、DBへのCRUDごとにリストアップしてくれる。実行時間も出るので、長時間かかっているものからつぶしていけば解決も早い。
解析の一部
実行計画へのリンクや最適化のTIps、複数回実行されているクエリをハイライトする等、ボトルネックを解消するために必要な情報を色々と教えてくれる。これらのデータをベースにSQLを見直し、Railsアプリケーションを高速化しよう。
フレームワークが優秀で、意識する事がなくなったデータベース。だからこそボトルネックになる問題が潜む可能性がある。遅い、または遅くなったと感じたらぜひチェックを。
flyingma’s palmist at master — GitHub
http://github.com/flyingma/palmist/tree/master
Flying Machine Studios » Blog Archive » Announcing Palmist
http://www.flyingmachinestudios.com/2008/05/14/announcing-palmist/