简述
- 之前在项目里有一个20多W的数据需要去分页展示,使用了PageHelper插件,发现直接调到最后面页查询会很慢,因为数据库会从第一条去逐个扫描,查询时间和起始记录的大小成正比
- 然后在网上查阅相关大数据量分页的资料,发现了一个很有灵性的方法!如下
【普通分页查询】
//30+秒
SELECT * FROM product LIMIT 866613, 20
【优化后】
//0.2秒(需要自增ID)
SELECT * FROM product WHERE id > =(SELECT id FROM product LIMIT 866613, 1) LIMIT 20
巧妙的利用了索引,速度简直是质的飞跃!
//速度同样很快!(不需要自增id)
SELECT * FROM product a JOIN
(SELECT id FROM product LIMIT 866613, 20) b
ON a.id = b.id
网友评论