php mysql显示朋友的帖子

时间:2011-08-02 23:02:06

标签: php mysql

显示朋友帖子的最佳方式是什么?

每个用户最多可以有5000个朋友。

步骤:

1)mysql检索5000个朋友的用户名。

2)在php数组中存储5000个朋友的用户名。

3)SELECT posts, datatime FROM tbl_posts WHERE username IN ($array) ORDER BY id DESC LIMIT 10;

问题:假设zac1987是php数组中的第5000项。如果zac1987发布了10个最新帖子,mysql是否需要浪费时间来遍历5000个项目以确定帖子是否由他发布?因此,如果我想显示10个最新帖子,mysql是否需要循环通过5000个朋友x 10个帖子= 50,000个项目?并且每5秒需要检查一下是否有新帖子,这意味着每5秒需要循环50,000个项目?有没有什么方法可以阻止这么多的循环/过滤项处理?

1 个答案:

答案 0 :(得分:3)

SELECT  p.*
FROM    friend f
JOIN    post p
ON      p.author = f.friend_id
WHERE   f.user_id = $myuserid
ORDER BY
        p.post_date DESC
LIMIT 10 

您应该在post (post_date)post (author)friend (friend_id, user_id)

上创建索引

根据基数,MySQL将使post在联接中领先(在这种情况下将使用第一个索引)或使friend领先(在这种情况下,它将收集所有朋友的帖子并对其进行排序。)