- blogs:
- cles::blog

mysqldumpslow をヒントに MariaDB/MySQL をチューニング


あるプロジェクトで使っている MySQL(というか MariaDB)が遅いので、mysqldumpslow を使ってチューニングしてみました。
mysqldumpslow*1 というのは slow ログファイルを解析して、要約を表示してくれるユーティリティで、これを使うと slow ログの中でもよりボトルネックになっているクエリを探し出すことができます。
† まずは slow ログを MariaDB/MySQL に吐かせる
mysqldumpslow を使うためには、対象となる slow ログ(時間がかかる SQL のログ)を手に入れる必要があります。
通常の MariaDB/MySQL では、slow ログは以下のように無効になっているはずです
これを以下のクエリによって書き換えてやります。
設定は即時有効になりますが、再起動時には元に戻ります。常に出力する場合には my.cnf に定義を書込んでください。
また、ここでは slow ログの閾値を 0.5 秒としていますが、場合によってはもっと小さくした方が良いかもしれません。
† slow ログを mysqldumpslow に喰わせる
あとは出力された slow ログを以下のような感じで mysqldumpslow に喰わせると結果を得ることができます。
クエリ内の数値や文字列は 'S' や 'N' に置換されて纏められるので、slow ログの量が多くても出力結果はかなり少なくなっているはずです。あとはこの出力結果を EXPLAIN して、クエリの実行計画を見ながらインデックスなどを調整してやれば OK です。
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/10513
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
2 . リモートデスクトップで Alt + PrtSc と同じことをするには(3425)
3 . RDP のプロトコルを TCP だけに変更する(2631)
4 . 「日次」は「にちじ」じゃない?(2472)
5 . リモートデスクトップで Ctrl + Alt + Del キーを送信するには(2348)