次のような MySQL クエリがあるとします。テーブルPEOPLE
には約 200 万行あります。
SELECT * FROM `PEOPLE` WHERE `SEX`=1 AND `AGE`=28;
最初の条件は 100 万行を返し、2 番目の条件は 20,000 行を返す場合があります。ローカル Web サイトから、ほとんどの開発者は、それらの順序を変更するとより良い影響が生じると述べています。2 million + 1 million + *10,000*
また、上記の元のクエリでは I/O 時間が発生するのに対し、順序を変更すると I/O 時間が発生するとも言われ2 million + 20,000 + *10,000*
ました。理にかなっているように聞こえます。
MySQL には、そのような作業のための内部クエリ オプティマイザーがあることは周知のとおりです。最適なパフォーマンスを得るために、注文は特に注意を払う必要がありますか? 私は完全に混乱していました。
PS: すでに似たような質問がいくつかあることに気付きましたが、それらは 2 年か 3 年も前のことなので、もう一度質問した方がよさそうです。
おかげで、この質問に気づきました。これは、なぜ私がもう一度尋ねるのかについての説明です:
この質問をする前に、EXPLAIN を数回実行します。答えは、順序は関係ありません。しかし、インタビュアーは、注文がパフォーマンスに違いをもたらすと私に言いました。何か欠けているものがないか確認したい.