我有这个查询来选择最小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";
Try with
SELECT MIN(blog_id) AS min_id
FROM myblogs_view
WHERE blog_id < '$id'
GROUP BY blog_id
你有blog_id
列的索引吗?
一般来说,当你在处理一个缓慢的查询时,你可以使用EXPLAIN
命令来查看MySQL是如何执行查询的
有一件事我想补充:如果你使用你的查询分页,你应该看看我如何加快MySQL查询与一个大的偏移在限制子句?
你可能会问为什么它是相关的?您描述了当继续单击时单击下一页后,您的查询运行缓慢。当您达到较大的偏移量时,可能会出现这种情况。我的猜测是,您使用查询来计算偏移量,然后通过限制偏移量查询来获取相关记录。对吗?如果是这样,那么您的其他查询可能会从我提供的链接中受益(我不是该答案的作者,在应得的地方给予信用)。