首页  >  文章  >  后端开发  >  如何通过偏移和限制优化来统计 MySQL 中的总查询结果?

如何通过偏移和限制优化来统计 MySQL 中的总查询结果?

DDD
DDD原创
2024-10-23 13:08:30527浏览

How to Count Total Query Results in MySQL with Offset and Limit Optimization?

在 MySQL 中获取总查询结果(带偏移量和限制)

在分页场景中,确定一个结果中的总结果数至关重要MySQL 查询计算所需的总页数。一种方法涉及运行查询两次,一次有检索分页结果的限制,另一次没有限制计算总行数。但是,这种方法可能效率较低。

输入 SQL_CALC_FOUND_ROWS:更优化的解决方案是在初始查询中使用 SQL_CALC_FOUND_ROWS 修饰符。通过包含此修饰符,MySQL 在应用限制之前计算匹配行的总数。然后,您可以执行 SELECT FOUND_ROWS() 语句来检索总计数。

用法:

要使用 SQL_CALC_FOUND_ROWS,只需将其添加到查询的开头:

<code class="sql">SELECT SQL_CALC_FOUND_ROWS ...</code>

执行查询后,运行以下命令来检索总行数:

<code class="sql">SELECT FOUND_ROWS();</code>

示例:

比方说您有这样的查询:

<code class="sql">SELECT * FROM `directory`
WHERE `category_id` = 12
ORDER BY `name` ASC
LIMIT 10 OFFSET 20;</code>

要计算结果总数,您将执行以下附加查询:

<code class="sql">SELECT FOUND_ROWS();</code>

这将返回category_id等于12的目录表,可以让你高效的确定分页所需的总页数。

以上是如何通过偏移和限制优化来统计 MySQL 中的总查询结果?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn