5月30日
【MySQLについてきちんと勉強したい方必見!】MySQL 5.7入門 SQLチューニング編
https://www-jp.mysql.com/news-and-events/events/mysql-for-beginners-sql-tuning-edition-ja/
に行ってきた!ので、その内容をメモメモのつづき(=その1のつづき)
■MySQL5.7入門(SQLチューニング編)- つづき
オプティマイザ詳細解説
・コストベースオプティマイザー
・論理的な変換
・準備
・コストベース最適化
・最終調整
論理的変換
否定の除去
展開
定数式の評価
不要な条件の除去
コスト
リソース使用量
単一クエリ=関連性は考えない
統計情報
5.5以前は統計情報は永続化されていない
analyze tableを実行
コストの見積もり
コスト定数も変更できる
→最新のハードウェア
パフォーマンススキーマから、IO速度調査できる
・アクセス方法の選択
主キー、ユニークキー constになる
他 複数 ref
Rangeスキャン
オプティマイザトレースで範囲確認できる
後方一致はインデックス使えない。
インデックスマージ
Handlerステータス変数について
インデックス・コンデション・プッシュダウン
・JOIN
Join順番の精度上がった
小さいものから
Visual Explainで確認
あとのテーブルを評価してなかったけど、5.7ではそこも
・サブクエリー
実は細かい話があるけど、内部的に勝手にされる話
・ソート処理、集計結果
ファイルソートを避ける→インデックス
リミット句
内部的にソートが何回されたか
・集計クエリ
参考情報として確認してね
・INに複数列
最適化される
クエリーリライトプラグイン
MySQLサーバー側でクエリ書き換え
■SQLチューニングにも役立つ
MySQL Enterprise Monitorのご紹介
・前のセッションで、大変そうだけど
スローログ
sys.statement_analysis
イベントヒストリで確認することもできる
・これから紹介するのは
複数台サーバーを包括的にする方法
・ファイルソート:ファイルとメモリ両方の場合
スローログでわかりにくいもの
・自己紹介
・5.7 10月 全文検索を高速、JSON
・DBはコミュニティ版と商用版一緒
Enterprise Edition
・Enterprise Monitor
アドバイスしてくれる機能
・問題が発生する前に通知
・ワークベンチとEnterprise Monitor
→ためられる
・ベストプラクティスアドバイザ
→パラメータあってるか、トライアルで確認する手も
・クエリアナライザー
なにで遅くなったか、解析できる
→スローログと比べて
・問題のあるクエリ実行プランを確認
・時系列パフォーマンスグラフ
・I/O大量発生
インデックスが最適化されていないケース
unused index
・Lock待ちの確認、プロセスの確認 show process List
・InnoDBバッファプールの利用状況
・レプリケーションモニター
トポロジーを見れる
(参考)Workbench
→中期的には、Workbench以外も・・
技術サポート
・見つけた内容を、どうチューニングする?
→楽ではない
・物理サーバーごと
→仮想環境:パブリッククラウドについては営業に
・Oracle製品との連携
GoldenGate使える
EnterpriseManagerと統合できる
・セキュリティ対策
【MySQLについてきちんと勉強したい方必見!】MySQL 5.7入門 SQLチューニング編
https://www-jp.mysql.com/news-and-events/events/mysql-for-beginners-sql-tuning-edition-ja/
に行ってきた!ので、その内容をメモメモのつづき(=その1のつづき)
■MySQL5.7入門(SQLチューニング編)- つづき
オプティマイザ詳細解説
・コストベースオプティマイザー
・論理的な変換
・準備
・コストベース最適化
・最終調整
論理的変換
否定の除去
展開
定数式の評価
不要な条件の除去
コスト
リソース使用量
単一クエリ=関連性は考えない
統計情報
5.5以前は統計情報は永続化されていない
analyze tableを実行
コストの見積もり
コスト定数も変更できる
→最新のハードウェア
パフォーマンススキーマから、IO速度調査できる
・アクセス方法の選択
主キー、ユニークキー constになる
他 複数 ref
Rangeスキャン
オプティマイザトレースで範囲確認できる
後方一致はインデックス使えない。
インデックスマージ
Handlerステータス変数について
インデックス・コンデション・プッシュダウン
・JOIN
Join順番の精度上がった
小さいものから
Visual Explainで確認
あとのテーブルを評価してなかったけど、5.7ではそこも
・サブクエリー
実は細かい話があるけど、内部的に勝手にされる話
・ソート処理、集計結果
ファイルソートを避ける→インデックス
リミット句
内部的にソートが何回されたか
・集計クエリ
参考情報として確認してね
・INに複数列
最適化される
クエリーリライトプラグイン
MySQLサーバー側でクエリ書き換え
■SQLチューニングにも役立つ
MySQL Enterprise Monitorのご紹介
・前のセッションで、大変そうだけど
スローログ
sys.statement_analysis
イベントヒストリで確認することもできる
・これから紹介するのは
複数台サーバーを包括的にする方法
・ファイルソート:ファイルとメモリ両方の場合
スローログでわかりにくいもの
・自己紹介
・5.7 10月 全文検索を高速、JSON
・DBはコミュニティ版と商用版一緒
Enterprise Edition
・Enterprise Monitor
アドバイスしてくれる機能
・問題が発生する前に通知
・ワークベンチとEnterprise Monitor
→ためられる
・ベストプラクティスアドバイザ
→パラメータあってるか、トライアルで確認する手も
・クエリアナライザー
なにで遅くなったか、解析できる
→スローログと比べて
・問題のあるクエリ実行プランを確認
・時系列パフォーマンスグラフ
・I/O大量発生
インデックスが最適化されていないケース
unused index
・Lock待ちの確認、プロセスの確認 show process List
・InnoDBバッファプールの利用状況
・レプリケーションモニター
トポロジーを見れる
(参考)Workbench
→中期的には、Workbench以外も・・
技術サポート
・見つけた内容を、どうチューニングする?
→楽ではない
・物理サーバーごと
→仮想環境:パブリッククラウドについては営業に
・Oracle製品との連携
GoldenGate使える
EnterpriseManagerと統合できる
・セキュリティ対策