关于数据库表数导出的疑问
来源:8-5 表数据导出到文件功能实现(3)

Jeff_Osmond
2019-04-03
老师,我们当前系统关于数据导出的方法是按条件将数据查询出来,然后再写入文件。但是如果数据库表的数据量级特别大的话,先查询数据的方法(比如getAll)会应该会使得程序占用内存过大吧,那应该怎么优化这个方法呢?
写回答
2回答
-
同学你好:
你说的问题是存在的。当数据量特别大的时候,最好不要在程序中直接 findAll,这会瞬间占据 JVM 中大量的内存,且也会对数据库本身造成很大的压力(主要是在于网络 IO 的消耗)。解决这个问题的方法有两个:
1. 使用 MySQL 自己提供的 mysqldump 工具,将数据表直接导出为文件。再利用程序做批量解析即可;
2. 使用 MySQL 的 limit offset 语法,比如,每次只取 1000 条数据,分批去取数据,存数据。
欢迎来 QQ 群随时交流、讨论,也非常感谢同学的支持!
50 -
Jeff_Osmond
提问者
2019-04-03
谢谢老师
10
相似问题