我们的数据库中有一个大表,用户尝试DELETE * FROM table
在其上运行。第二天它仍在运行,所以我们终止了该进程。
我尝试重命名、删除和截断受影响的表,甚至整个数据库,但任何查询都会结束Waiting for table metadata lock
。不过我可以从表中查询。
我能找到的所有信息都表明,某个地方会有一个进程仍在进行,但我已经重新启动了服务器,问题仍然存在。
它是一个具有多个其他数据库的临时服务器,因此相当繁忙,但我在其他地方没有看到问题,并且我可以添加和删除其他数据库。似乎只有这一个数据库有问题。
启用性能模式后,我在表中看到一些条目performance_schema.metadata_locks
,如下所示:
我不确定它dictionary_impl.cc:434
指的是什么,但我没有看到任何INFORMATION_SCHEMA.PROCESSLIST
与此相关的内容。
锁表中引用的表全部来自我要删除的数据库。