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

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

Patricia Arquette
发布: 2024-12-12 17:28:11
原创
392 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板