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