0

SOで同様の質問が見つかりましたが、何も役に立ちませんでした。これが私の問題です:

かなり大きなテーブル「イベント」があります。また、'photos' と 'videos' の 2 つのテーブルがあります。すべての「イベント」レコードには eid (イベント ID) があります。すべての「写真」および「ビデオ」レコードには aeid (関連付けられたイベント ID) があります。

たとえば 20 個のイベントのイベント データを取得するために、現在、次のように PHP を実行しています。

array = get top 20 events
for these 20 events
  array['photos'] = get all photos
  array['videos'] = get all videos
return events array

これは実行が遅すぎることがわかっています。おそらく、これは 41 個の mysql クエリに相当するためです。何らかの形で JOIN を使用する必要があることはわかっていますが (少なくともそうしていると思います)、上記の擬似コードで行っているのと同じ方法で写真とビデオをネストするようにクエリを構造化する方法がわかりません. また、postgres に切り替えるための余裕があるとは思いません (非常に強く提案されている場合を除きます)。私は、たった 1 人の開発者 (私) だけで頭痛の種になるのに十分な大きさのコードベースで作業しています。

ドキュメント/マニュアルを投稿していただければ、喜んで読みます。しかし、私はすでにいくつかの場所でそうしましたが、役に立ちませんでした。ありがとう!

4

1 に答える 1

0

のようなものを試してみてください..

 SELECT E.eid, V.aeid, P.aeid 
 FROM events E, videos V, photos P 
 WHERE E.eid='$ID' and V.aeid='$ID' and P.aeid='$ID' 
 ORDER BY E.eid desc

テストされていませんが、要点を理解する必要があります

于 2013-02-15T20:34:47.587 に答える