Mysql查询大量数据 比如100万数据 如何一次性查出来
首先是进行分页查询,但是如果有些情况不适合分页查询 则可以使用mybatis框架提供的流式接口查询
MyBatis 流式查询接口
MyBatis 提供了一个叫 org.apache.ibatis.cursor.Cursor 的接口类用于流式查询,这个接口继承了 java.io.Closeable 和 java.lang.Iterable 接口,由此可知:
1、 Cursor是可关闭的;
2、 Cursor是可遍历的;
除此之外,Cursor 还提供了三个方法:
1、 isOpen():用于在取数据之前判断Cursor对象是否是打开状态只有当打开时Cursor才能取数据;
2、 isConsumed():用于判断查询结果是否全部取完;
3、 getCurrentIndex():返回已经获取了多少条数据;
使用流式查询,则要保持对产生结果集的语句所引用的表的并发访问,因为其 查询会独占连接,所以必须尽快处理
为什么要用流式查询?
- 如果有一个很大的查询结果需要遍历处理,又不想一次性将结果集装入客户端内存,就可以考虑使用流式查询;
来源地址:https://blog.csdn.net/qq_42042621/article/details/130693331