MySQLデータベースをある環境から別の環境に移行しましたが、移行後、特定のクエリの実行速度が以前よりも非常に遅いことがわかりました。
'explain'キーワード(下記)を使用してステートメントを調査したところ、'explain'コマンドが異なるサーバーで異なる出力を提供することがわかりました。
explain select distinct j.job,f.path,p.path
from fixes f
join jobs j on f.job=j.id
join paths p on p.id =f.path
where p.path like '//depot1/Dev\-trunk/%' ;
元の1つについては、次のようになります。
1 SIMPLE p range PRIMARY,path path 752 **19** Using where; Using index; Using temporary
1 SIMPLE f ref path,job path 8 p.p.id **6448356**
1 SIMPLE j eq_ref PRIMARY PRIMARY 8 p.f.job **1**
また、同じステートメントを使用すると、新しい環境で異なる出力が得られます。
1 SIMPLE j index PRIMARY job 62 **68486** Using index; Using temporary
1 SIMPLE f ref path,job job 8 p.j.id **812**
1 SIMPLE p eq_ref PRIMARY,path PRIMARY 8 p.f.path **1** Using where