5

これは、現在のプロジェクトの製品ページ用にMySQLデータベースから取得するデータの説明です。

製品データはproductテーブルから取得され、変数名(色、サイズなど)はと呼ばれるテーブルから取得されproduct_option_group、これらの変数(赤、緑、青または小、中、大など)の実際の値はproduct_optionテーブルにあります。その製品に関連付けられている製品の写真はにありproduct_photoます。

おそらく、JOIN-sを使用して、すべて(製品、変数、値、写真)を1つのクエリで返す単一のクエリを作成し、それforeachを便利にするために必要なものにすることができます。私の質問は、それが意味をなすかどうかです。クエリを最小限に抑えるために、どの程度取り組む必要がありますか?

商品のリストの場合、単一のクエリを使用して、少量の商品データと最初の商品写真のURLを取得しています。しかし、単一の製品を示すページでは、最善のアプローチについて少し確信が持てません。クレイジーで長いMySQLクエリを作成してから、多くのPHP解析を実行する1つの方法のようです。そして別の方法で、私は一握りのデータベース呼び出しを行っています。

どちらがベストですか?

4

2 に答える 2

6

私は常に、必要な場合にのみ最適化する必要があり、問題を引き起こしていないものを最適化しようとしないという仮定を教えられてきました(そしてそれを使って作業しました)。

それで、あなたの場合、あなたが持っているものを取り、それを工場に通します-それに負荷をかけ、それがそれをどのように処理するかを見てください。遅い場合は、1つのクエリに結合するのか、1つまたは2つのインデックスを追加するのか、あるいはそれを高速化するために何をするのかを考えてください。ゆっくりと戻ってくるのがDBなのか、2つの間のトラフィックが問題なのか、PHPが十分な速度で処理していないのかを自問してみてください。

必要な場所で時間を過ごし、シンプルに保つことを忘れないでください。

于 2012-07-30T14:52:16.297 に答える
3

ページの読み込みごとのクエリ数を最小限に抑えることをお勧めします。

ただし、データベースサーバーは、多くの小さなクエリを処理するのに適しています。多くのCMSには、ページの読み込みごとに数百のクエリがあります。

したがって、常に最適化を試みますが、それに夢中にならないでください。

于 2012-07-30T14:50:14.377 に答える