作者:不要破网名_329 | 来源:互联网 | 2023-01-10 02:22
目前的业务是处理千万级的数据,将里面的字段拆分出来,插入到新表中,新表中的数据可能会过亿,在前期使用MySqlBulkLoader插入的时候,速度非常快,插入十万条数据少于1s,但是后期插入速度就非常
目前的业务是处理千万级的数据,将里面的字段拆分出来,插入到新表中,新表中的数据可能会过亿,在前期使用MySqlBulkLoader插入的时候,速度非常快,插入十万条数据少于1s,但是后期插入速度就非常缓慢了,插入十万条数据可能需要十分钟。
看了一下MySQL后台执行的线程,没有其他资源占用,只有LOAD DATA LOCAL INFILE在执行。
比较奇怪的是,有时候速度能提上来,但是一到白天工作期间就会慢,有大神能解释一下吗?
17 个解决方案
表被一个线程锁定了,就是这个load data local file,我可以这样理解吗?因为更新的优先级较高,所以在插入的时候表会被锁,这个应该没有问题吧?
【但是一到白天工作期间就会慢】,主机在做其他事情。
这个可能不是写法的问题了,硬件也有瓶颈。
开一个新库,建个空表测试一下,如果也是白天慢,那么瓶颈在服务器
如果空表也不稳定,那么说明是和其他某些操作有冲突,互相影响
如果空表快而且稳定,那么再把源表 copy 一份测试,如果这时候快了,那么说明是原表的使用和你的load 有冲突,如果也慢,说明问题就出在源表上,数据量大+索引的影响前面已经有人分析过了,通常是这个问题,考虑分区分表