优化Mysql批量查询的生成

时间:2015-11-17 17:56:12

标签: grails groovy

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

  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
}

然后whit aux生成,我插入MySQL

由于

1 个答案:

答案 0 :(得分:0)

好吧,不能解决这个问题,但是在石英作业中实现它,使其并发,并部署5个vms并在一天内完成该过程。 蛮力。