MySQLクエリの最適化に取り組んでいますが、奇妙な問題が発生しています。mysqldump
ライブの本番データベースを使用することはないので、ダンプを作成し、追加のオプションを使用せずにローカルマシンのデータベースにインポートします。
本番データベースとローカル仮想マシンのmysqlのバージョンはほぼ同じです。
本番環境:mysql Ver 14.14 Distrib 5.1.61、readline 6.2を使用したdebian-linux-gnu(x86_64)用
仮想マシン:mysql Ver 14.14 Distrib 5.1.63、readline 6.2を使用したdebian-linux-gnu(x86_64)用
この1つのクエリは非常に複雑で、本番環境では約4〜5秒かかりますが、VMでは1秒未満かかります。私が考えることができる唯一のことは、クエリがすぐに実行されないようにする本番データベースのロックがあり、クエリはロックを待機する必要があるということです。
各EXTENDED EXPLAIN
データベースに対してクエリを実行する場合はほぼ同じですが、わずかな違いがいくつかあります。
SQL_NO_CACHE
クエリがキャッシュにヒットしないようにするために、クエリの前に使用しています。
だから私の質問は:
EXTENDED EXPLAIN
本番データベースのコピーを使用していて、mysqlのバージョンが同じである場合、何が少しでも異なる原因になる可能性がありますか?- 同じクエリが本番データベースでより長くかかると私が考えていない理由はありますか?