baomidou / mybatis-plus

An powerful enhanced toolkit of MyBatis for simplify development
https://baomidou.com
Apache License 2.0
16.41k stars 4.31k forks source link

流式查询是不是一次读取全部数据到内存了? #5849

Closed jyjey closed 10 months ago

jyjey commented 10 months ago

当前使用版本(必填,否则不予处理)

mybatisplus:3.5.4.1 spring:2.7.6

该问题是如何引起的?(确定最新版也有问题再提!!!)

使用流式查询27w数据时表象正常,200W数据时还是发生了内存溢出 打印sql发现多次执行查询语句,怀疑是不是先加载了全部数据到内存,然后再逐条读取的?

重现步骤(如果有就写完整)

报错信息

内存溢出

nieqiurong commented 10 months ago

不是,具体可以查ResultHandler原理

jyjey commented 10 months ago

但是200W没有分页的情况单纯的依赖流式查询,确实发生了内存溢出,是不是有其他需要注意的文档中没有写?

nieqiurong commented 10 months ago

没什么其他要注意点,这要取决你查出来后面做了什么,你又把这数据依次保存在list里什么的,就只能调整你的堆内存,正常情况下是处理一条丢一条.

bearnew commented 3 months ago

@jyjey 大佬解决了吗,我现在也是流式查询百万条数据,内存上涨明显,且没有被回收

elcnu986 commented 1 month ago

@jyjey 大佬解决了吗,我现在也是流式查询百万条数据,内存上涨明显,且没有被回收

首先确定是不是真的是流式查询

6485