ローカルの開発マシンとは対照的に、ステージング サーバーで実行速度が 5 倍遅いクエリがあります。
Stackoverflow は書式設定をうまく処理したくありません。クエリ、説明、および説明はここにあります
ステートメントを見るとdescribe
、ローカル スキーマとリモート スキーマの間に違いは見られません。
2 台のマシンのレコード数は同程度です (500k 対 600k)
コメントに応じて編集
クエリを MySQL Workbench に投入してクエリ時間を調べるというのは、非常に非科学的な私のアプローチでした。ローカル クエリ時間は約 1.3 秒で、リモート クエリ時間は約 5.2 秒でした (つまり、4 倍遅い)。このクエリ時間をテストするより良い方法があると確信しています。
マシンは異なります。私の開発マシンは、8 ギガの RAM を搭載した Mac Book Pro です。ステージング サーバーは、512 メガバイトの RAM を搭載した Linode VPS です。ステージング サーバーにはあまり負荷がかからないはずです (使用しているのは私だけです)。ほとんどのクエリがローカル マシンとステージング サーバーでほぼ同じ時間枠で実行されていることに気付きました。
RAM の問題
一時テーブルが使用されていないため ( には言及されていませんEXPLAINS
)、RAM の容量は引き続き問題になりますか?
からの出力free
total used free shared buffers cached
Mem: 508576 453880 54696 0 4428 254200
-/+ buffers/cache: 195252 313324
Swap: 262140 19500 242640
Gist に追加されたプロファイリング
リモートでは「データの送信」に 2.5 秒かかっているようですが、ローカルでは 0.5 秒しかかかっていません。これは I/O の問題ですか? (要旨の完全なプロファイリング情報)