基本上,
我有一个功能可以遍历用户的整个朋友列表,然后获取每个朋友的最后状态帖子。现在,对于拥有 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
输出的是所有用户的新闻提要;如果我将其设置为,"LIMIT 1"
那么该设置将整个query2
限制为 1 个输出,而不是每个用户 1 个输出。
非常感谢任何想法或建议。