今天进行库存查询,select * from table 查询出来的数据量有60万条,报了内存溢出的错误.
解决方式一:
对于mysql,我们只需要在driverurl后面加上:useCursorFetch=true&defaultFetchSize=500,开启fetchsize即可,这个会在服务端维护一个游标,分批返回数据到客户端。经测试,对mysql服务端性能影响极小,当然你担心可以从mysql从库上查询。
完整形式如:jdbc:mysql://192.168.1.252:3306/lims?useUnicode=true&charsetEncoding=utf8&useCursorFetch=true&defaultFetchSize=100
解决方式二:
使用偏移量分页