当我们在处理分页程序的时候,会使用 limit 来限制返回的数量,然后会有两种获取分页的方法:
第一种方法:
在 select 语句中加入 sql_calc_found_rows 选项,然后通过 select found_rows() 来获取总行数:
select sql_calc_found_rows * from table where id > 100 limit 10; select found_rows();
第二种方式:
使用正常的 sql 语句,然后再用 select count(*) 来获取总行数:
select * from table where id > 100 limit 10; select count(*) from table where id > 100;
经过测试,一般来说 sql_calc_found_rows 是比较慢的,sql执行的时间甚至会达到10倍那么夸张,所以最好别使用 mysql 的 sql_calc_found_rows 来获取总行数。