無駄な文章が多くてすみません。最も重要なことは、最後の 3 つの段落で説明されています:D
最近、クライアント サーバーの 1 つで mysql の問題が発生しました。何かが突然、mysql プロセスの CPU を急上昇させ始めます。この問題により、不適切なクエリを見つけて最適化することになり、ここに問題があります。
最適化によりクエリが高速化されていると考えていました(クエリの実行に必要な合計時間)。しかし、それに向けていくつかのクエリを最適化した後、私の同僚の最初の同僚は、一部のクエリがテーブルからすべての行を読み取る行が多すぎると不平を言い始めました(EXPLAINで示されているように)。
クエリを書き直した後、クエリで読み取る行を少なくしたい場合、クエリの速度が低下し、速度を重視してクエリを作成すると、より多くの行が読み取られることに気付きました。
そして、それは私には意味がありませんでした:読み取られる行は少なくなりますが、実行時間は長くなります
そして、それは私が何をすべきか疑問に思いました。もちろん、最小限の行を読み取る高速なクエリがあれば完璧です。しかし、私にはそれができないように思われるので、いくつかの答えを探しています。どちらのアプローチを取るべきですか - 速度または読み取り行数が少ないですか? クエリが高速であるが、より多くの行が読み取られ、速度が低下して読み取られる行が少ない場合の長所と短所は何ですか? さまざまなケースでサーバーはどうなりますか?
グーグルで検索した後、速度を向上させる方法に関する記事とディスカッションしか見つかりませんでしたが、前述のさまざまなケースはカバーされていませんでした.
もちろん、何らかの理由で個人的な選択が見られることを楽しみにしています。私を正しい方向に導くことができるリンクも大歓迎です。