基本的に、
ユーザーの友達リスト全体を実行し、各友達の最後のステータス投稿を取得する関数があります。さて、1500人以上の友達や300人以上の友達がいる人にとっては、実行する時間はすぐに増えます。つまり、100人の友達を実行するには約かかります。65秒。
だから私は、これはMultiQueryを介したバッチとしてより適切に実行されるだろうと考えました。基本的な概念は次のとおりです。
$mq = array(
"query1"=>"SELECT uid2 FROM friend WHERE uid1 = me() LIMIT 5",
"query2"=>"SELECT actor_id, message, created_time, permalink FROM stream WHERE source_id IN (SELECT uid2 FROM #query1) AND actor_id IN (SELECT uid2 FROM #query1)"
);
したがって、これは実際にはうまく機能しますが、query2
出力はすべてのユーザーのニュースフィードです。これに設定すると、ユーザーごとに1つの出力ではなく、1つの出力に制限されるよう"LIMIT 1"
に全体が設定されます。query2
任意のアイデアや推奨事項は大歓迎です。