日本オラクル 山崎さん
MySQL 5.6時代のパフォーマンスチューニング
チューニングに使うといえばsar, iostat, vmstatとか、SHOW FULL PROCESSLISTとか色々あるけど、5.6になってEXPLAINの機能強化、ビジュアルEXPLAIN(Workbench)、p_sの強化がある #dbts2013 #mysql_jp
2013-11-13 14:05:47EXPLAINの出力結果をJSONにできるようになって、WorkbenchはそのJSONを食ってビジュアライズしてくれる #dbts2013 #mysql_jp
2013-11-13 14:09:37EXPLAINをJSONで吐かせたい時は、 mysql> EXPLAIN FORMAT=JSON SELECT ..; でどうぞ #dbts2013 #mysql_jp
2013-11-13 14:10:49TEXT形式では含まれていなかった情報がJSONには出ている。extra=> index_conditionの内容とか。 #dbts2013 #mysql_jp
2013-11-13 14:12:06WorkbenchのビジュアルEXPLAINで見ればJSONでもラクラク見られます。虫眼鏡のアイコンからどうぞ。 #dbts2013 #mysql_jp
2013-11-13 14:13:05「ビジュアルEXPLAINの何が一番良いって、色でテーブルへのアクセスパターンが判るようになっている」 #dbts2013 #mysql_jp
2013-11-13 14:14:53「type: allなら赤、type: indexなら橙、type: eq_refなら青、とかとかとか」 開発チームにちょっと説明したりするのには便利かなー。 #dbts2013 #mysql_jp
2013-11-13 14:16:08ビジュアルEXPLAINは、MySQL 5.7(DMR)では更に見やすく拡張される予定。JOINの順番が一目で判るように! #dbts2013 #mysql_jp
2013-11-13 14:17:54他にもWorkbenchはSHOW FULL PROCESSLISTの結果をGUIで見たりできるんだぜ、というデモ #dbts2013 #mysql_jp
2013-11-13 14:19:22SHOW FULL PROCESSLISTよりもi_s.processを食ってくれるようになればいいのに、Workbench #dbts2013 #mysql_jp
2013-11-13 14:20:01オプティマイザートレース。 オプティマイザーが実行計画を作った時に使った内部コストまで見られるようになった。 #dbts2013 #mysql_jp
2013-11-13 14:22:30オプティマイザートレースを有効にしてから、i_s.optimizer_traceテーブルの中身を確認する #dbts2013 #mysql_jp
2013-11-13 14:23:11mysqld内部の稼働統計を蓄積するp_s。5.5の時点では取得できる情報が少なかった。5.6ではサマリーの情報とか色々取れるようになって使いやすくなっている。 #dbts2013 #mysql_jp
2013-11-13 14:24:10ONにはなってるけど、どの情報を蓄積するかはmy.cnfで設定するものとp_sのテーブルをいじって設定するパラメータがある #dbts2013 #mysql_jp
2013-11-13 14:25:37p_s.setup_* がSQLで設定する側のテーブル名 #dbts2013 #mysql_jp setup_actors, setup_consumers, setup_objectsが特に重要らしい。
2013-11-13 14:26:47setup_instrumentsは設定項目が多すぎるので、他から手を付けた方がいいらしい #dbts2013 #mysql_jp
2013-11-13 14:27:28