一次批量转移数据引起的问题

起因是系统对大数据表启用分表,然后在手动转移数据的时候占用数据库大量资源,导致系统正常业务无法运行。

表的数据量大约为400万左右,要按月份分表,我直接在navicat上执行的语句


START TRANSACTION;
CREATE TABLE `表名` (
    .
    .
    .
  字段
    .
    .
    .
) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='...';


INSERT INTO 表名_3
	
		SELECT
			*
		FROM
			`表名` c
		WHERE
			MONTH(c.`时间字段`) = '03'
	;
COMMIT;

,嗯,图快还可以了两个窗口同时执行,成功了一次,第二次系统操作这个表的正常功能受到影响各种获取锁超时,然后我直接使用navicat中止这两段语句的执行,本以为可以了,没想到杀死这两个线程的语句被阻塞了

就47166这个线程,命令是killed

没办法,当时想到两个办法一个是重新MySQL,然后就是kill掉其他的操作这个表的线程,

 

由于各种原因,选了第二种方法,停掉了系统关于这个表的相关操作,kill相关线程,然后静等,最好是所有线程全部停掉

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值