锁表原因
1.有未提交事务;
2.有需要表锁的操作,比如所有alter table操作,如果是update,insert这种行锁的操作不会有问题
方法:
1.alter table的语句是很危险的(其实他的危险其实是未提交事物或者长事务导致的) 避免这些
2.有alter table的任务,在无人监管的时候运行,最好通过lock_wait_timeout设置好超时时间,避免长时间的metedata锁等待。
3.可以先创建副本,再将表名改掉
链接:https://www.jianshu.com/p/4abc30dfad01