1

我有这个查询来选择最小 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";
4

2 回答 2

1

尝试

SELECT MIN(blog_id) AS min_id
FROM myblogs_view
WHERE blog_id < '$id'
GROUP BY blog_id

blog_id列上有索引吗?

一般在处理慢查询时,可以使用EXPLAIN命令查看 MySQL 是如何执行查询的。

于 2011-04-30T10:04:22.853 回答
0

我想补充一件事:如果您使用查询进行分页,您应该看看 如何在 LIMIT 子句中使用大偏移量来加速 MySQL 查询?

你可能会问为什么它是相关的?您描述当您继续单击时单击下一页后您的查询运行缓慢。当您达到较大的偏移量时,这很可能发生。我的猜测是您使用查询来计算偏移量,然后使用限制偏移量查询来获取相关记录。那是对的吗?如果是这样,那么您的其他查询可能会受益于我提供的链接(我不是该答案的作者,请在应得的地方给予信用)。

于 2011-04-30T11:07:28.380 回答