经过验证,这个方法能解决我的第二个问题其实select * from emp oreder by age limit 10000,10 的最大性能是耗在mysql要扫描并丢掉10000“行”的整行数据 Select id From emp Order By age limit 10000,1 和 Select id From emp Order By age limit 10000,10 的性能应该是“差不多的” 所以,更好的方式是这样 SELECT * FROM emp INNER JOIN( SELECT id FROM emp ORDER BY age LIMIT 10000,10 ) AS tmp USING(id) 验证: select * from emp oreder by age limit 2000000,10; 用时41s SELECT * FROM emp INNER JOIN( SELECT id FROM emp ORDER BY age LIMIT 2000000,10 ) AS tmp USING(id) 用时8s emp表的字段越多,能节省的时间越多
Select id From emp Order By age limit 10000,1
和
Select id From emp Order By age limit 10000,10
的性能应该是“差不多的”
所以,更好的方式是这样
SELECT * FROM emp
INNER JOIN( SELECT id FROM emp ORDER BY age LIMIT 10000,10 )
AS tmp USING(id)
验证:
select * from emp oreder by age limit 2000000,10; 用时41s
SELECT * FROM emp
INNER JOIN( SELECT id FROM emp ORDER BY age LIMIT 2000000,10 )
AS tmp USING(id) 用时8s
emp表的字段越多,能节省的时间越多