我有这个users
表:MySQL查询优化需要
id : int (255)
name: char (100)
last_comment_target: int(100)
last_comment_date: datetime
此表有大约1.3mil行。
PKEY
和BTREE
是id
,last_comment_target
和last_comment_date
。
而且,我想执行一系列查询:
SELECT * FROM users
WHERE id IN (1,2,3,5,...[around 5000 ids])
AND last_comment_target > 0
ORDER BY last_comment_dt DESC LIMIT 0,20;
有时查询可以采取只要3秒钟。我想知道是否有更好的方法来优化这个查询。或者,如果这个查询可以被重写。
非常感谢您的帮助。
你从哪里得到5000个ID? – Jacob
5000个ID来自哪里?如果你可以把它们放到一个表格中(或者它们已经在表格中)并且进行连接,它可能会更快。更好的是,如果5000个ID可以与用户中的属性相关联,那么您可以将其指定为简单条件 - 如果需要,甚至可以对其进行索引。 –
这5000个ID是手动插入还是可以查询? – AJC