最近对公司的大表进行在线添加列操作。
使用的是pt工具。但是依然会有部分的死锁情况出现。
建议可行的方案为:
一 · 修改参数;
innodb_autoinc_lock_mode=2
插入insert的不同类型
1、simple insert 如insert into t(name) values('test')
2、bulk insert 如load data | insert into ... select .... from ....
3、mixed insert 如insert into t(id,name) values(1,'a'),(null,'b'),(5,'c');
innodb_autoinc_lock_mode 介绍
1、0 这个表示tradition 传统模式,表级锁
2、1 这个表示consecutive mysql默认,连续,对可预估个数的做了优化
3、2 这个表示interleaved 交错,后果是值不连续。
二· --chunk-size参数设置的更小