MySQL 5.7 初心者向けセミナー ~チューニング基礎編、SQLチューニング編~

oracle社のmysql勉強会に参加してきました。

atnd.org

 

4時間という長丁場で、ボリュームたっぷりに講義いただきました。

勉強会で新しく覚えたことをメモしておきます。

 

■ツール

以下の公式ツールが便利らしい。

 

ベンチマーク測定ツール

mysqlslap

SysBench

 

統合開発環境

MySQL Workbench

 

次期バージョン

次期バージョンは5.7ではなく、8.0となる。

クエリキャッシュ機能がなくなることが決定している。

(クエリキャッシュはあまり使うべきものではないとのこと)

 

パラメータの妥当性確認

パラメータチューニングに対して、利用状況からパラメータ値の妥当性を判断することができるものがある。

例えば、my.cnfにsort_buffer_size(ソート用のメモリサイズ)を設定できるが、これに対し、show statusコマンドで、Sort_merge_passes(ファイルを利用したマージソートのパス数)を確認する。

Sort_merge_passesがカウントされている場合、sort_buffer_sizeが不足し、ファイルアクセスされているということなので、sort_buffer_sizeを増やしてみようかといった対処をする。

 

・パラメータと確認項目の対応(詳細は調べて)

設定値(my.cnf) 確認項目(show status)
max_connections Max_used_connections
thread_cache_size Threads_created
sort_buffer_size Sort_merge_passes
query_cache_size Qcache_hits, Qcache_inserts
query_cache_type Qcache_lowmem_prunes

 

■スロークエリログ

指定した実行時間以上かかるクエリをログ出力できる仕組み。

ツールmysqldumpslowで、スロークエリログの集計ができる。

 

パラメータの妥当性確認とスロークエリログは積極的に使いたいと思いました。