我有这个查询来选择最小 ID。在最初的几次点击中似乎工作正常,但是当我继续点击调用此查询的按钮时,它变得非常缓慢。
此查询的任何解决方法?
"select min(t1.blog_id) as min_id
FROM
(SELECT blog_id FROM myblogs_view
where blog_id<'$id' ORDER BY blog_id DESC LIMIT 10) as t1";
我有这个查询来选择最小 ID。在最初的几次点击中似乎工作正常,但是当我继续点击调用此查询的按钮时,它变得非常缓慢。
此查询的任何解决方法?
"select min(t1.blog_id) as min_id
FROM
(SELECT blog_id FROM myblogs_view
where blog_id<'$id' ORDER BY blog_id DESC LIMIT 10) as t1";
尝试
SELECT MIN(blog_id) AS min_id
FROM myblogs_view
WHERE blog_id < '$id'
GROUP BY blog_id
blog_id
列上有索引吗?
一般在处理慢查询时,可以使用EXPLAIN
命令查看 MySQL 是如何执行查询的。
我想补充一件事:如果您使用查询进行分页,您应该看看 如何在 LIMIT 子句中使用大偏移量来加速 MySQL 查询?
你可能会问为什么它是相关的?您描述当您继续单击时单击下一页后您的查询运行缓慢。当您达到较大的偏移量时,这很可能发生。我的猜测是您使用查询来计算偏移量,然后使用限制偏移量查询来获取相关记录。那是对的吗?如果是这样,那么您的其他查询可能会受益于我提供的链接(我不是该答案的作者,请在应得的地方给予信用)。