某日,路上收到用户咨询,为了清除空间,想删除某200多G大表数据,且已经确认此表不再有业务访问,于是执行了一条命令‘deletefrombigtable’,但好长时间也没删完,经过咨询后,获知droptable删除表速度快,而且能彻底释放空间,于是又在另外一个session中执行了‘droptablebigtable’命令,但是这个命令并没有快速返回结果,光标一直hang在原地不动。最后找我们协助,在登录数据库执行‘showprocesslist’后发现drop语句的状态是‘waitingfortablemetadatalock’,而之前执行的另外一个delete语句依旧能看到,状态为‘upd
某日,路上收到用户咨询,为了清除空间,想删除某200多G大表数据,且已经确认此表不再有业务访问,于是执行了一条命令‘deletefrombigtable’,但好长时间也没删完,经过咨询后,获知droptable删除表速度快,而且能彻底释放空间,于是又在另外一个session中执行了‘droptablebigtable’命令,但是这个命令并没有快速返回结果,光标一直hang在原地不动。最后找我们协助,在登录数据库执行‘showprocesslist’后发现drop语句的状态是‘waitingfortablemetadatalock’,而之前执行的另外一个delete语句依旧能看到,状态为‘upd
一、MDL锁的介绍MySQL5.7版本之前并没有提供一个方便的途径来查看MDL锁,github上有一名为mysql-plugin-mdl-info的项目,通过插件的方式来查看,于是在MySQL5.7中的performance_schea库下新增了一张表metadata_locks,用其来查看MDL锁那是相当的方便:不过默认PS并没有打开此功能,需要手工将wait/lock/metadata/sql/mdl监控给打开:UPDATEperformance_schema.setup_consumersSETENABLED='YES'WHERENAME='global_instrumentatio
一、MDL锁的介绍MySQL5.7版本之前并没有提供一个方便的途径来查看MDL锁,github上有一名为mysql-plugin-mdl-info的项目,通过插件的方式来查看,于是在MySQL5.7中的performance_schea库下新增了一张表metadata_locks,用其来查看MDL锁那是相当的方便:不过默认PS并没有打开此功能,需要手工将wait/lock/metadata/sql/mdl监控给打开:UPDATEperformance_schema.setup_consumersSETENABLED='YES'WHERENAME='global_instrumentatio