测试机器, 笔记本 win7 cpu i5-4210M 8G内存
测试数据 单表 181w数据
mybatis常用分页组件性能对比
1. RowBounds
2. PageHelper
3. 性能对比
数据 | 耗时 | |
RowBounds | 180w数据 pageSize=20 50页到100页 | 4分钟 |
RowBounds | 180w数据 pageSize=200 7000页到7020页 | 1分22秒 |
PageHelper | 180w数据 pageSize=20 50页到100页 | 1962ms |
PageHelper | 180w数据 pageSize=200 7000页到7020页 | 12909ms |
jvm 内存消耗如下
PageHelper
RowBounds
3. 原理分析
PageHelper: 物理分页, 通过拦截器加 limit 语句进行分页
RowBounds: 逻辑分页,数据量大的时候压力较大
总结:Mybatis的逻辑分页比较简单,简单来说就是取出所有满足条件的数据,然后舍弃掉前面offset条数据,然后再取剩下的数据的limit条