通常我们都用如下的sql来进行列表
SELECT COUNT(*) FROM users WHERE name LIKE ‘a%’;
SELECT name, email FROM users WHERE name LIKE ‘a%’ LIMIT 10;
但是从mysql4.0.0开始,我们可以选择使用另外一个方式:
SELECT SQL_CALC_FOUND_ROWS name, email FROM users WHERE name LIKE ‘a%’ LIMIT 10;
SELECT FOUND_ROWS();
其中SQL_CALC_FOUND_ROWS 告诉MySQL将sql所处理的行数记录下来,FOUND_ROWS() 则取到了这个纪录。
虽然也是两个语句,但是只执行了一次主查询,所以效率比原来要高很多。
mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name WHERE id > 100 LIMIT 10; mysql> SELECT FOUND_ROWS();