测试Mybatis批量查询和使用HashMap查询效率

一 首先准备工作100万条数据

测试Mybatis批量查询和使用HashMap查询效率

Mybatis批量查询

测试Mybatis批量查询和使用HashMap查询效率

使用HashMap存储所有数据,然后从Map中获取需要的数据

测试Mybatis批量查询和使用HashMap查询效率

二 开始测试 先测试查询其中的10w条

Mybaits批量查询 多次点击最终稳定在1.1秒左右
测试Mybatis批量查询和使用HashMap查询效率

HashMap查询 多次点击最终稳定在3.7秒左右
测试Mybatis批量查询和使用HashMap查询效率

三 测试查询其中的20w条

Mybaits批量查询 多次点击最终稳定在2.5秒左右

测试Mybatis批量查询和使用HashMap查询效率

HashMap查询 多次点击最终稳定在4.2秒左右
测试Mybatis批量查询和使用HashMap查询效率

四 测试查询其中的30w条

Mybaits批量查询 多次点击最终稳定在3.5秒左右

测试Mybatis批量查询和使用HashMap查询效率

HashMap查询 多次点击最终稳定在4.4秒左右

测试Mybatis批量查询和使用HashMap查询效率

五 测试查询其中的40w条(Map成功超过Mybatis)

Mybaits批量查询 多次点击最终稳定在4.5秒左右

测试Mybatis批量查询和使用HashMap查询效率

HashMap查询 多次点击最终稳定在4.3秒左右
测试Mybatis批量查询和使用HashMap查询效率

六 测试查询其中的50w条

Mybaits批量查询 多次点击最终稳定在6秒左右

测试Mybatis批量查询和使用HashMap查询效率

HashMap查询 多次点击最终稳定在4.1秒左右

测试Mybatis批量查询和使用HashMap查询效率

七 结论

后面数据就不测了,如果你某个项目需要这样一种业务场景,你需要在循环里拿到对应条件进行查询时,

你可以选择把条件都存到集合里,然后再进行Mybaits的批量查询,你也可以先将所有数据查询出来,塞进Map里,然后依次从Map里取出。当你需要的数据占总数据的40%以下时,使用Mybatis批量查询可能更好一些,当数据占比超过40%时,使用Map更好一些。

注:以上数据和结论仅供参考,本人心血来潮进行的一波测试,纯属娱乐!!!