背景:最近公司技术交流有的同事提出ResultSet分页的观点(若是您不知道如何使用ResultSet分页,请自行google),我一直使用数据库分页,以前没有接触过ResultSet分页的概念,不知道他是属于内存逻辑分页仍是数据库分页,因此本身作了个小测试数据库
测试数据:(其中只使用了 collect_id,data_time 两个字段)tomcat
数据量:单表300W测试
数据库:Mariadb-5.5.25-win32google
①ResultSet 查询
执行ResultSet查询前:Java.exe(tomcat 进程)占用内存 630748Kspa
执行ResultSet查询后:Java.exe(tomcat 进程)占用内存 1025224K进程
②NutzDao 查询
执行NutzDao查询前:Java.exe(tomcat 进程)占用内存 623212K内存
执行NutzDao查询后:Java.exe(tomcat 进程)占用内存 625608K硬件
①执行ResultSet 查询使用时间
分页
ResultSet 分页用时:[19462] 毫秒,总记录数:[3000000] 条im
②行NutzDao 查询使用时间
Nutz Dao 数据库分页用时:[12] 毫秒,总记录数:[3000000] 条
总结:
①
内存占用 ResultSet 查询约为 NutzDao 查询的 (1025224-630748)/(625608-623212)~=160倍
②
查询耗时 ResultSet 查询约为 NutzDao 查询的 19462/(12)~=1600倍
固然影响测试数据因素有不少,可是至少这个数据应该能够说明一些问题,仅供参考