首页 >数据库 >mysql教程 >SQL 分页:'SELECT SQL_CALC_FOUND_ROWS”与'SELECT COUNT(*)”——哪个更快?

SQL 分页:'SELECT SQL_CALC_FOUND_ROWS”与'SELECT COUNT(*)”——哪个更快?

Patricia Arquette
Patricia Arquette原创
2024-12-12 17:28:11391浏览

SQL Pagination: `SELECT SQL_CALC_FOUND_ROWS` vs. `SELECT COUNT(*)` - Which is Faster?

SELECT SQL_CALC_FOUND_ROWS 与 SELECT COUNT(*) 计算行数

使用 SQL 分页数据时,有两种方法来确定总记录计数:SQL_CALC_FOUND_ROWS 和 SELECT COUNT(*)。哪种方法执行速度更快?

方法 1:SQL_CALC_FOUND_ROWS

此方法将 SQL_CALC_FOUND_ROWS 选项添加到初始 SELECT 语句中。执行此语句后,您可以通过运行 SELECT FOUND_ROWS() 来检索总行数。

方法 2:SELECT COUNT(*)

而不是使用 SQL_CALC_FOUND_ROWS,此方法不加修改地执行原始查询。然后,通过运行单独的查询来获取总行数:SELECT COUNT(*) FROM table。

性能比较

最佳选择取决于特定因素,例如索引和数据库配置。根据 MySQL 性能博客,SQL_CALC_FOUND_ROWS 可以表现出不同的性能,从相当于运行单独查询到显着慢(最多慢 10 倍)。

建议

许多用户报告方法 2(运行两个查询)通常会产生更好的性能。但是,建议使用代表性数据集对这两种方法进行基准测试,以确定给定环境的最佳方法。

以上是SQL 分页:'SELECT SQL_CALC_FOUND_ROWS”与'SELECT COUNT(*)”——哪个更快?的详细内容。更多信息请关注PHP中文网其他相关文章!

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