关于数据库表数导出的疑问

来源:8-5 表数据导出到文件功能实现(3)

Jeff_Osmond

2019-04-03

老师,我们当前系统关于数据导出的方法是按条件将数据查询出来,然后再写入文件。但是如果数据库表的数据量级特别大的话,先查询数据的方法(比如getAll)会应该会使得程序占用内存过大吧,那应该怎么优化这个方法呢?

写回答

2回答

张勤一

2019-04-03

同学你好:

    你说的问题是存在的。当数据量特别大的时候,最好不要在程序中直接 findAll,这会瞬间占据 JVM 中大量的内存,且也会对数据库本身造成很大的压力(主要是在于网络 IO 的消耗)。解决这个问题的方法有两个:

    1. 使用 MySQL 自己提供的 mysqldump 工具,将数据表直接导出为文件。再利用程序做批量解析即可;

    2. 使用 MySQL 的 limit offset 语法,比如,每次只取 1000 条数据,分批去取数据,存数据。


    欢迎来 QQ 群随时交流、讨论,也非常感谢同学的支持!

5
0

Jeff_Osmond

提问者

2019-04-03

谢谢老师

1
0

Spring Cloud微服务架构 设计实现广告系统

广告营销系统,未来大中型企业的标配

2136 学习 · 927 问题

查看课程