私は25-30カテゴリの禅カートを持っています。サイトのフロントページには、それぞれのカテゴリには、そのカテゴリの4つのベストセラー商品が表示される小さなエリアがあります。多くの小さなSQL文は、私のサイトをかなり遅くします
私はこれをやっていると考えることができる最良の方法は、ページが読み込まれるたびにベストセラーを選ぶ各カテゴリの単一のSQL文を持つことです。私は、あなたがサイトの速度に影響しないようにSQLステートメントの量を制限するのが最善であるとどこかで読んだことがあります。
このようにすると非常に遅くなりますか?
これを行うより賢明な方法がありますか?
これはもっと複雑なクエリではできませんか?スキーマはどうですか? –
いつものように、これに対する答えは「それは依存している」。あなたが現場にいる場合、それに答える最善の方法は、いくつかの変更を加えて、それがどのような効果を持っているかを見ることです。まず、いくつかのSQLの変更を試してみてください。一般的に、簡単なクエリの場合は、個々のクエリの数を制限することをお勧めします.4つの行を取得するクエリのほうが、4つの個別のクエリよりも優れていることがよくあります。 – halfer
経験則:複数のクエリで達成される単一のクエリで同じことを達成できる場合は、単一のクエリを使用します。これには例外がありますが、それほど多くはありません。 *本当に複雑なもの、または1つ以上のMySQL UDFを必要とするものがある場合、複数のクエリに分離するケースがあります。一般的には、クエリー/ DBの解析/ DBの結果の検索/ DBの返送/結果セットのPHP解析に伴うオーバーヘッドが増えるため、クエリーが少なくなります。 1つのクエリしか使用しない場合は、すべてこれが1回だけ発生します。 – DaveRandom