我正在通过脚本将数据从一个数据库迁移到另一个数据库。
我没有导出为csv或直接在数据库服务器上导出内容的可能性。
因此,我制作了一个脚本来读取其中的行,并在mysql上批量插入。
基本的问题是,将从服务器接收到的列表转换为Mysql进行批量插入所需的格式,在脚本上生成aux需要太多时间,例如2500个值需要40秒。
但是真的不确定是否可以进行大的更改,因为实际上在代码上没有发现任何明显的开销,显然我已经做了两个,但是实际上我没有找到其他方法。

  def query= """SELECT * FROM tablex """.toString()
  def   fullRowResults = sql.rows(query) as List
  fullRowResults =fullRowResults.collate(2500)
fullRowResults.each{ frr ->
  def aux=""
  frr.each{
  def aux2= it.values()
  aux2= aux2.collect{
    it.replaceAll("'","")
  }
  aux2=aux2.join("','")
  aux2="('"+aux2+"'),"
  aux+=aux2
}

然后生成aux,我在MySQL上插入

谢谢

最佳答案

好吧,无法解决此问题,但可以在 quartz 作业中实现它,使其并发,并部署5个虚拟机,并在一天内完成该过程。
蛮力。

07-25 22:40