(本文档仅供参考)
问题
mysql大数据量的情况下会报Java heap space,具体报错如下图:
问题原因
...
默认情况下,MySQL是加载所有数据到内存中的,所以在大数据量的情况下会造成内存溢出的问题。
解决方案
对于此问题,可以通过如下方式勾选【大数据量兼容】来解决:
...
勾选前的连接字符串:jdbc:mysql://<servername>:<port>/<database>?useOldAliasMetadataBehavior=true&useUnicode=true&characterEncoding=GBK&zeroDateTimeBehavior=convertToNull
勾选后的连接字符串:jdbc:mysql://<servername>:<port>/<database>?useOldAliasMetadataBehavior=true&useUnicode=true&characterEncoding=GBK&zeroDateTimeBehavior=convertToNull&useCursorFetch=true&defaultFetchSize=10000
勾选后会添加&useCursorFetch=true&defaultFetchSize=10000,即设置每次查出多少条数据,之后再执行next方法,查取下一批数据,这样每次查出一点,处理一点,避免大数量的情况,造成内存溢出的问题。
Viewtracker |
---|