我们都知道在mysql中使用limit分页,当limit后的offset很大时会有性能问题,
例如limit 10000,30
它会取出前10030条数据,然后舍弃前10000条,有点儿类似es的深分页问题。
例如我们写一个sql
select * from user limit 10000,30
性能不如以下写法
select a.* from user a
left join (select id from user limit 10000,30) b
on a.id = b.id
那么两者的区别在哪儿呢?
其实第二种写法主要就是减短了从数据到聚簇索引的时间。至于聚簇索引的相关知识大家可以去查一下资料,说白了聚簇索引就是一级索引,而像我们平常自己所建的什么唯一索引,全文索引则通常称为二级索引,需要回表,性能会差。
pageHelper中的分页原理就是Limit,所以在数据量很大时会有性能问题,慎用!!!