[英]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.