db tech showcase 2013 TokyoのMySQLセッション

4

日本オラクル 山崎さん
MySQL 5.6時代のパフォーマンスチューニング

yoku0825 @yoku0825

今日来ている人で5.6使ってるのは8人くらい #dbts2013 #mysql_jp

2013-11-13 14:02:58
yoku0825 @yoku0825

チューニングに使うといえばsar, iostat, vmstatとか、SHOW FULL PROCESSLISTとか色々あるけど、5.6になってEXPLAINの機能強化、ビジュアルEXPLAIN(Workbench)、p_sの強化がある #dbts2013 #mysql_jp

2013-11-13 14:05:47
yoku0825 @yoku0825

5.6ではSELECT以外でもEXPLAINを取れるようになりました #dbts2013 #mysql_jp

2013-11-13 14:08:41
yoku0825 @yoku0825

EXPLAINの出力結果をJSONにできるようになって、WorkbenchはそのJSONを食ってビジュアライズしてくれる #dbts2013 #mysql_jp

2013-11-13 14:09:37
yoku0825 @yoku0825

オプティマイザートレースも追加されたよ #dbts2013 #mysql_jp

2013-11-13 14:10:14
yoku0825 @yoku0825

EXPLAINをJSONで吐かせたい時は、 mysql> EXPLAIN FORMAT=JSON SELECT ..; でどうぞ #dbts2013 #mysql_jp

2013-11-13 14:10:49
yoku0825 @yoku0825

TEXT形式では含まれていなかった情報がJSONには出ている。extra=> index_conditionの内容とか。 #dbts2013 #mysql_jp

2013-11-13 14:12:06
yoku0825 @yoku0825

WorkbenchのビジュアルEXPLAINで見ればJSONでもラクラク見られます。虫眼鏡のアイコンからどうぞ。 #dbts2013 #mysql_jp

2013-11-13 14:13:05
yoku0825 @yoku0825

「ビジュアルEXPLAINの何が一番良いって、色でテーブルへのアクセスパターンが判るようになっている」 #dbts2013 #mysql_jp

2013-11-13 14:14:53
yoku0825 @yoku0825

「type: allなら赤、type: indexなら橙、type: eq_refなら青、とかとかとか」 開発チームにちょっと説明したりするのには便利かなー。 #dbts2013 #mysql_jp

2013-11-13 14:16:08
yoku0825 @yoku0825

ビジュアルEXPLAINは、MySQL 5.7(DMR)では更に見やすく拡張される予定。JOINの順番が一目で判るように! #dbts2013 #mysql_jp

2013-11-13 14:17:54
yoku0825 @yoku0825

これ、5.7.2で既に使えたりするのかしら? #dbts2013 #mysql_jp

2013-11-13 14:18:11
yoku0825 @yoku0825

他にもWorkbenchはSHOW FULL PROCESSLISTの結果をGUIで見たりできるんだぜ、というデモ #dbts2013 #mysql_jp

2013-11-13 14:19:22
yoku0825 @yoku0825

SHOW FULL PROCESSLISTよりもi_s.processを食ってくれるようになればいいのに、Workbench #dbts2013 #mysql_jp

2013-11-13 14:20:01
yoku0825 @yoku0825

オブジェクトの定義とかもツリー構造で確認できるようになってます #dbts2013 #mysql_jp

2013-11-13 14:21:00
yoku0825 @yoku0825

オプティマイザートレース。 オプティマイザーが実行計画を作った時に使った内部コストまで見られるようになった。 #dbts2013 #mysql_jp

2013-11-13 14:22:30
yoku0825 @yoku0825

オプティマイザートレースを有効にしてから、i_s.optimizer_traceテーブルの中身を確認する #dbts2013 #mysql_jp

2013-11-13 14:23:11
yoku0825 @yoku0825

mysqld内部の稼働統計を蓄積するp_s。5.5の時点では取得できる情報が少なかった。5.6ではサマリーの情報とか色々取れるようになって使いやすくなっている。 #dbts2013 #mysql_jp

2013-11-13 14:24:10
yoku0825 @yoku0825

5.6ではデフォルト有効になりました #dbts2013 #mysql_jp

2013-11-13 14:24:24
yoku0825 @yoku0825

ONにはなってるけど、どの情報を蓄積するかはmy.cnfで設定するものとp_sのテーブルをいじって設定するパラメータがある #dbts2013 #mysql_jp

2013-11-13 14:25:37
yoku0825 @yoku0825

統計情報をクリアするには、p_sスキーマのテーブルをTRUNCATEしてあげる #dbts2013 #mysql_jp

2013-11-13 14:26:07
yoku0825 @yoku0825

p_s.setup_* がSQLで設定する側のテーブル名 #dbts2013 #mysql_jp setup_actors, setup_consumers, setup_objectsが特に重要らしい。

2013-11-13 14:26:47
yoku0825 @yoku0825

setup_instrumentsは設定項目が多すぎるので、他から手を付けた方がいいらしい #dbts2013 #mysql_jp

2013-11-13 14:27:28
yoku0825 @yoku0825

これ、ちゃんとロンゲストマッチしてくれるのかな? #dbts2013 #mysql_jp

2013-11-13 14:28:38
1 ・・ 16 次へ