gpt4 book ai didi

php - 如何让我的 friend 在大型数据库上进行 mysql 查询?

转载 作者:行者123 更新时间:2023-11-29 05:46:29 25 4
gpt4 key购买 nike

这是我的mysql表方案;

  1. status 表//有 statusID, userID,date, subject, date
  2. comment 表//保存 commentID,发布的用户 ID、日期和状态 ID它也属于
  3. user 表//保存 userID 用户名和用户照片网址

使用上面的表格方案,我需要这样做;

  1. 速度快,数据库查询量最少
  2. 在我的 friend 列表中显示某个用户发布的页面上的所有状态条目(最多可以有 5,000 个 friend )
  3. 显示每个状态的所有评论在适当的博客下输入
  4. 为每个人显示一个用户名/照片网址状态条目帖子
  5. 显示所有人的用户名/照片网址旁边的评论海报评论

我想要的结果类似于 myspace 或 facebook,它将显示所有帖子/操作或仅来自您的 friend 的任何内容。

您甚至可以将关于堆栈溢出的这个页面与我想要完成的内容进行比较,将我的帖子视为状态帖子并且该页面上的所有答案都将是状态帖子,然后在该页面的所有答案下,它显示下面的评论每个人都有用户信息,有没有更好的方法可以在没有这么多连接和东西的情况下实现这一目标?

问题一
有没有更好的方法来完成我需要的?即使使用索引搜索数百万行,这也不够快,我有什么选择?

问题2
是否可以修改它以仅显示每个状态帖子的前 X 条评论?如果是这样,是否会加快速度,因为它不必搜索那么多评论?

下面的friend List已经在query中了,原因是我打算把friend list做成Array,存到memcache或者APC cache中,这样就少了1次query

这是我的查询

SELECT s.statusid, s.userid, s.statustype, s.subject, 
s.datetime, c.commentid, c.statusid, c.userid,
c.comment, c.datetime, su.disp_name,
su.pic_url, cu.disp_name, cu.pic_url
FROM teststatus AS s
LEFT JOIN teststatuscomments AS c
ON s.statusid = c.statusid
LEFT JOIN friend_reg_user AS su
ON su.auto_id = s.userid
LEFT JOIN friend_reg_user AS cu
ON cu.auto_id = c.userid
WHERE s.userid =1 OR s.userid
IN ( 2, 3, 4, 5, 6, 7, 8, 9,
10, 11, 12, 13, 14, 15, // Remember this list of friend ID's
16, 17, 18, 19, 20 ) //can be from any ammount of ID's up to 5,000
ORDER BY s.statusid

PS)我会尽快开始悬赏

最佳答案

您的连接基于相同的字段等于两个不同的值,因此永远无法满足

 ON fru.auto_id = s.userid
AND fru.auto_id = c.userid

您需要两次连接到用户表

SELECT s.statusid, s.userid, s.statustype, s.subject, 
s.datetime, c.commentid, c.statusid, c.userid,
c.comment, c.datetime, su.disp_name,
su.pic_url, cu.disp_name, cu.pic_url
FROM teststatus AS s
LEFT JOIN teststatuscomments AS c
ON s.statusid = c.statusid
LEFT JOIN friend_reg_user AS su
ON su.auto_id = s.userid
LEFT JOIN friend_reg_user AS cu
ON cu.auto_id = c.userid -- EDIT
WHERE s.userid =1OR s.userid
IN ( 2, 3, 4, 5, 6, 7, 8, 9,
10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20 )
ORDER BY s.statusid

关于php - 如何让我的 friend 在大型数据库上进行 mysql 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1248670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com