我正在通过脚本将数据从一个数据库迁移到另一个数据库。
我没有导出为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个虚拟机,并在一天内完成该过程。
蛮力。