在数据处理时,用多线程大批量插入同一张表,导致数据库事务超时,如何优化,数据量大概300W
目前数据库数据库事务超时时间一分钟,还是会超时
在数据处理时,用多线程大批量插入同一张表,导致数据库事务超时,如何优化,数据量大概300W
目前数据库数据库事务超时时间一分钟,还是会超时
两点疑惑,第一事务无法蔓延到多线程,你是怎么做的?根据包装返回值抛异常?
第二,三百万插入要保证事务?
推荐处理方式:
1.批处理。
2.不要一条条插入,批量插入
3.建立临时表,然后从表中集体插入。
4.不用事务,从业务和逻辑上保持事务
如果上面还不行,采用以下办法:
1.手动事务,缩小事务范围。
2.关掉数据库的所有索引,插入之后再打开。
3.SQL语句有长度限制,默认是1M,可以修改
4.主从复制,分库分表,降低单个的压力