首页 > 数据库 > mysql教程 > 'SQL_CALC_FOUND_ROWS 与 COUNT(*):哪种方法分页更有效?”

'SQL_CALC_FOUND_ROWS 与 COUNT(*):哪种方法分页更有效?”

Mary-Kate Olsen
发布: 2024-12-14 07:30:11
原创
125 人浏览过

`SQL_CALC_FOUND_ROWS vs. COUNT(*): Which Method is More Efficient for Pagination?`

SQL 性能:SELECT SQL_CALC_FOUND_ROWS 与 SELECT COUNT(*)

考虑一个场景,您需要限制返回的行数用于分页目的的 SQL 查询。要确定记录总数,主要有两种方法:

方法 1:SQL_CALC_FOUND_ROWS

SELECT SQL_CALC_FOUND_ROWS * FROM table WHERE id > 100 LIMIT 10;
SELECT FOUND_ROWS();  
登录后复制

方法 2:SELECT COUNT(*)

SELECT * FROM table WHERE id > 100 LIMIT 10;
SELECT COUNT(*) FROM table WHERE id > 100;  
登录后复制

问题来了:哪个哪种方法更有效?

最佳方法:视情况而定

根据 MySQL 性能博客,没有明确的答案。博客作者 Peter Zaitsev 建议最佳方法取决于索引配置和其他因素。

一般共识

但是,许多评论针对博客文章似乎表明 SQL_CALC_FOUND_ROWS 通常比运行两个查询慢。报告的性能损失可能会很大,可能会慢 10 倍。

以上是'SQL_CALC_FOUND_ROWS 与 COUNT(*):哪种方法分页更有效?”的详细内容。更多信息请关注PHP中文网其他相关文章!

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