我有以下 Mysql 查询。这是一个缓慢的查询,大约需要 3 秒才能完成。message_id 是主键。这个问题是高 LIMIT 偏移量LIMIT 85075, 25
。
SELECT * FROM `phorum_messages` WHERE 1 and `catergory` >=0 and parent_id=0 order by `message_id` desc LIMIT 85075, 25;
基于此解决方案,我将查询更改为以下方式。问题是如果我删除where parent_id=0
,速度会快得多。但我真的需要where parent_id=0
编辑:我已经为 parent_id 和 message_id 创建了索引。
有什么建议么?提前致谢。
SELECT t.*
FROM (
SELECT message_id
FROM phorum_messages where parent_id=0
ORDER BY message_id desc LIMIT 85075, 25
) q
JOIN phorum_messages t
ON t.message_id = q.message_id