MySQL生产堵塞严重,定位堵塞源头

1、来自于生产事故的压力

在一次做生产环境DDL的操作中,误判了产生的影响,造成了大量的堵塞(查询了需要DDL的表,发现表行数很小,行数在万行以下,所以认为DDL会很快完成,但没有判断出这个表的并发度,这个表在业务中属于热点表),生产环境因此大量的堵塞,造成了严重问题,当不断有客户反馈软件不能正常使用。然后我们查询到大量堵塞。研发,测试,客服,包括领导都全站在我身后,里里外外围了几层,可想其中的压力。 由于对系统表不是太熟,还需要去官网做一定的查询,拖延了解决问题的时间,解决后为了以后能快速解决此类问题,所以在测试环境进行了复盘,并写成了语句模板,方便遇到问题快速解决。

2、问题复现

create table locktest1 ( id int, num int, primary key(id) ); create table locktest2 ( id int, num int, primary key(id) ); create table locktest3 ( id int, num int, primary key(id) ); insert into locktest1 values(1,10),(2,20),(3,30); insert into locktest2 select * from locktest1; insert into locktest3 select * from locktest1