pageHelper在大数据量下慢的问题

tech2024-03-28  24

在开发过程中,我们少不了用到分页,我最习惯的分页是用limit来分页。由于之前的时候写的项目数据量并不大,所以用的是pageHelper这个插件来分页的。以前也没有什么感觉,近期做的项目数据量有点大,越来越感觉sql效率不够,就看了一下它的基本工作原理。

当然,技术不到家,查看api什么的也看不太懂,就打印了一下最终执行的sql语句。对比之后发现是limit的偏移量问题导致的sql效率低下

写的sql原本是这样

select * from account where age >= 18;

最后执行的时候是这样

select * from (select * from account where age >= 18)where limit 100,10;

也就是说,用pageHelper插件的时候,它会拦截我们写的sql语句,自己重新包装一层,在后面添加limit。这在数据量小的时候当然是没有什么问题的,但是一旦数据量过大,那分页到后面数据时候limti的偏移量必然增大 ,不可避免的,查询的时间就会呈几何倍数增长。

所以大数据量下就不要用了!

最新回复(0)