下面是我正在研究的一个mysql查询 用户状态POst(在某种程度上像推特) 对这些帖子的评论 用户照片和姓名,以显示谁发布了状态帖子或评论
IN子句中的用户ID列表是从另一个查询生成的,该查询是一个大约一百万行的大表。 我是否应该尝试将该表格加入到下面的查询中,或者将这些结果分开,就像我现在这样,我们就像下面所示 作为一串ID?
SELECT s.statusid, s.userid, s.statustype,
s.subject, s.datetime, c.commentid,
c.statusid, c.userid, c.comment, c.datetime,
fru.disp_name, fru.pic_url
FROM teststatus AS s
LEFT JOIN teststatuscomments AS c ON s.statusid = c.statusid
LEFT JOIN friend_reg_user AS fru ON ( fru.auto_id = s.userid
AND fru.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, 16, 17, 18, 19, 20 )
ORDER BY s.statusid
答案 0 :(得分:1)
如果您需要使用大型IN子句进行此类查询,那么它与您的架构有点混淆。
您应该加入这些行,而不是生成这么长的IN语句。 什么存储在这些数百万行中?
答案 1 :(得分:0)
尝试两者,在原始问题中同时发布两者的代码,并使用不同的并发线程对结果进行基准测试。请引用您的mysql版本字符串以获得繁荣。