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

SQL 行计数优化:'SELECT SQL_CALC_FOUND_ROWS”与'SELECT COUNT(*)”——哪个更快?

Mary-Kate Olsen
发布: 2024-12-22 02:33:17
原创
307 人浏览过

SQL Row Count Optimization: `SELECT SQL_CALC_FOUND_ROWS` vs. `SELECT COUNT(*)` – Which is Faster?

SQL 性能优化:比较“SELECT SQL_CALC_FOUND_ROWS...”和“SELECT COUNT(*)”的行数

在 SQL 数据库中优化时,确定表中的记录总数对于分页和其他操作至关重要。此任务的两种常用方法是“SELECT SQL_CALC_FOUND_ROWS...”和“SELECT COUNT(*)”。

方法 1:“SELECT SQL_CALC_FOUND_ROWS...”

此方法在初始 SELECT 查询中使用“SQL_CALC_FOUND_ROWS”选项来准备服务器返回总行 数数。初始查询后,您可以使用“SELECT FOUND_ROWS()”检索总计数。

方法 2:“SELECT COUNT(*)”

或者,您可以使用“SELECT COUNT(*)”运行单独的查询来直接计算表。

性能比较

确定行数的最佳方法取决于特定因素。根据 MySQL 性能博客,“SQL_CALC_FOUND_ROWS”的效率因索引和其他配置设置而异。

专家的观察

Peter Zaitsev,作者MySQL 性能博客表明,在大多数情况下,“SQL_CALC_FOUND_ROWS”通常比运行两个单独的查询慢。博客文章中的许多评论者还指出,“SQL_CALC_FOUND_ROWS”可能会明显变慢,甚至慢 10 倍。

结论

而“SELECT SQL_CALC_FOUND_ROWS... " 在某些情况下可能是有益的,通常建议对性能关键型应用程序使用 "SELECT COUNT(*)"其中最小化执行时间至关重要。但是,始终建议使用您的特定数据和配置测试这两种方法,以确定适合您的用例的最佳方法。

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

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