繁体   English   中英

php mysql显示朋友的帖子

[英]php mysql show friends' posts

显示好友帖子的最佳方法是什么?

每个用户最多可以有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个项目? 有什么方法可以防止这么多的循环/过滤项过程吗?

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领先(在这种情况下它将收集所有朋友的帖子并对其进行排序)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM