mysql limit性能问题
offset大的时候的比较
1、
SELECT * FROM persons LIMIT 200000,10;
耗时0.109s
2、
SELECT *
FROM persons WHERE id>=(
SELECT id FROM persons ORDER BY id LIMIT 200000,1
) LIMIT 10
耗时0.078s
why?
offset偏移量越大,用子查询效率更高。本质原因是什么?避免全表扫描字段
http://doc.mysql.cn/mysql5/refman-5.1-zh.html-chapter/
第一个例子从偏移量0扫描全表字段到200000
第二个例子是先从偏移量0只是扫描字段id到200000,然后根据id(用到索引)判断获取结果。
mysql分页limit 优化