
Java
剑穹
这个作者很懒,什么都没留下…
展开
-
JDBC读写数据优化-分批次读写数据库
最近由于业务上的需求,一张旧表结构中的数据,需要从oracle中提取出来,写入到MySQL表中,由于数据量过大,做了以下优化。1.在oracle数据库取数的时候时候给jdbc设置FetchSize参数,分批次从表中取数,然后将数据封装到list中。2.使用设置FetchSize参数的方式解决了读取数据时数据量过大的问题,但是分批次读取的数据存放在list中,在写入到mysql中时,同样面临这数据量过大的问题3.为了解决上面的问题,解决方案是:开启一个线程,监控list中数据变化,一旦list中有原创 2020-09-07 16:02:57 · 1649 阅读 · 0 评论 -
JDBC读取数据优化-fetch size
JDBC读取数据优化-fetch size 最近由于业务上的需求,一张旧表结构中的数据,需要提取出来,根据规则,导入一张新表结构中,开发同学写了一个工具,用于实现新旧结构的transformation,实现逻辑简单,就是使用jdbc从A表读出数据,做了一些处理,再存入新表B中,发现读取旧表的操作,非常缓慢,无法满足要求。读取数据的示例代码, conn = getConnection(); long start = System.currentTimeMillis(); ps = conn.prepare转载 2020-09-04 18:02:36 · 1927 阅读 · 0 评论 -
mysql的jdbc中fetchsize支持的问题
1. MySQL的JDBC OutOfMemoryError: Java heap space异常 MySql数据库通过JDBC对大表进行查询时抛出java.lang.OutOfMemoryError: Java heap space异常。这是因为默认情况下,MySQL的JDBC驱动会一下子把所有row都读取下来,这在一般情况下是最优的,因为可以减少Client-Server的通信开销。但是这样也有一个问题,当...转载 2020-09-04 17:57:14 · 2485 阅读 · 1 评论