ランサーズでは、現在、Webエンジニアを募集しています。
詳しくは、募集要項をご覧下さい。
こんにちは、keiです。
今回は、MySQLのチューニングに大活躍な「Jet Profiler」というツールをご紹介します。
【2012/12/13 追記】
JetProfilerバージョン3がリリースされ、日本語対応しました。
この日本語化は、ランサーズ上で依頼されました。
http://www.lancers.jp/work/detail/69629
【追記ここまで】
Jet Profilerとは
Jet Profilerは、MySQL向けのクエリアナライザです。
クエリチューニングは、DBパフォーマンスチューニングの中でも重要な作業の1つですが、
Jet Profilerを使えば、その作業をGUIで直感的に行うことができます。
フリーウェアの形態で提供されており、機能限定版であれば無料で利用することができます。
購入する場合は、$499となります。
詳細情報、ダウンロードは公式ページからどうぞ。
http://www.jetprofiler.com/ja/
Jet Profilerの魅力
その1 導入のしやすさ
通常のWindowマシンに、普通のアプリケーションをインストールする感覚でインストールが可能です。
(追記)
ダウンロードページにはMac版、Linux版もあります。
インストール後は、接続情報を入力すればすぐに使い始めることができます。
インストールから接続までの間は10分とかからないでしょう。
※適宜、サーバ側のFWやユーザ権限(GRANT)の設定が必要です。
(追記)
パスワードなしでの接続はできません。
パスワードを設定するか、Jet Plofiler用にユーザを作成する必要があります。
その2 提供情報の豊富さ
クエリの内容や実行回数、Innodb cacheといった多岐に渡る情報を提供してくれます。
また、これらの情報は、表やグラフでグラフィカルに表示され、
情報の切り替え等の各種操作は、全てマウスで行うことが可能です。
使い方
実行結果を記録する
DBに接続ができたら、まずはクエリ情報の記録を始めます。
左上にある赤丸のアイコンをクリックすると記録が始まります。
しばらくアプリケーションをブラウザ上から操作すると、各種情報が記録・表示されはじめます。
上部右側の折れ線グラフは、接続されている、実行中である、実行に時間がかかっているスレッドをそれぞれ表しています。
下部には、アクセスの多いテーブルが円グラフで示されています。
クエリを解析する
下部にある「Top Queries」タブを選択すると、実行回数の多いクエリが表示されます。
クエリの内容やトータルの実行時間などを表形式で俯瞰することができます。
(追記)
無償版では、一部のクエリは見えないようになっています。。
Rating欄にある「explain」と書かれたリンクをクリックすると、Explainの実行結果が表示されます。
最上部にJOIN時のサイズやExplain結果のExtra情報が、良し悪しと共に表示されます。
このクエリは、悪いJOINをしているしインデックスも効いていないのでBADだらけです。(笑)
中段には、所謂Explainの実行結果が記載されています。
一番下には、実際のクエリの内容が表示されます。
表示の切り替え
ただでさえ見やすく表示してくるJet Profilerですが、表示方法を色々と変更できます。
折れ線グラフの任意の箇所をドラッグすると、その時間帯のみズームで表示できます。
おわりに
Jet Profilerで確認できる情報は、スロークエリログやSHOW PROCESSLISTで確認できるものですが、それらを横断的にグラフィカル表示できること、マウス操作で簡単に切り替えられることが大きなメリットだと思います。
また、基本的にはクライアント側で動作するため、サーバが重くなることもないそうです。
コマンドラインでの解析に疲れたDB担当者の方、ぜひ導入をご検討下さい!
ランサーズのフェイスブックページでも色々と情報を発信しております。
よろしければいいね!をお願いします!