MySQL-SQL_CALC_FOUND_ROWS

在程序SQL慢查询中遇到SQL_CALC_FOUND_ROWS,记录一下用法。

SQL_CALC_FOUND_ROWS指在执行带LIMIT的查询时,附带统计一下如果不加LIMIT的话,将会输出多少条结果(注意这个不是估计估计,而是精确的)。在做分页显示的时候,就可以用这个功能还计算总共有多少页。


返回查询的结构,一直FOUND_ROWS()

select SQL_CALC_FOUND_ROWS * from shop limit 1;
select FOUND_ROWS();

SQL_CALC_FOUND_ROWS在速度上会比COUNT(*)慢很多,具体有多慢,取决于你的索引还有一些别的因素, count大约要比SQL_CALC_FOUND_ROWS快上10倍.

参考网址:

https://www.percona.com/blog/2007/08/28/to-sql_calc_found_rows-or-not-to-sql_calc_found_rows/

你可能感兴趣的