MySQL:慢速删除表命令
我想用MySQL:慢速删除表命令,mysql,Mysql,我想用 DROP TABLE IF EXISTS <myTableName>; 删除表格(如果存在); 然而,即使在几个小时后,它仍然在运行。有什么解决方法的建议吗?我也遇到了同样的问题,只是通过重新启动服务器解决了这个问题: sudo /etc/init.d/mysql stop sudo /etc/init.d/mysql start 可能是某个锁被锁住了,重新启动释放了它。更好的方法: 终止所有阻止删除操作的进程 假设您要在数据库中删除一个表表 1) 在并行会话中登录my
DROP TABLE IF EXISTS <myTableName>;
删除表格(如果存在);
然而,即使在几个小时后,它仍然在运行。有什么解决方法的建议吗?我也遇到了同样的问题,只是通过重新启动服务器解决了这个问题:
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start
可能是某个锁被锁住了,重新启动释放了它。更好的方法:
终止所有阻止删除操作的进程
假设您要在数据库中删除一个表表
1) 在并行会话中登录mysql,最好以root用户身份登录。
问题:
您将看到db*上所有进程的列表:
2) 如果在拖放之前有任何活动进程,则应等待它们完成(如果确定,则杀死它们)
3) 然后在等待进程之前,先关闭所有“休眠”的进程:
KILL 38239;
KILL 38240;
4) 之后,被阻止的进程应继续执行丢弃操作
在InnoDB中,在删除之前等待是一个已知的问题
更新:在非独占更新(受影响记录的数量可能不同的更新)上也注意到此行为,例如:
# may update any number of customers, from 0 to all
UPDATE customers SET `active` = 'N' WHERE `last-payment-date` < 2018-01-01;
#可以更新任意数量的客户,从0到全部
更新客户设置“活动”=“N”,其中“上次付款日期”<2018-01-01;
解决方案完全相同
- 所提供的表格取自真实场景,出于安全和演示目的,对数据进行了模糊处理和轻微编辑
检查此线程,可能您有相同的悬挂升降台问题是的,这将是一个锁定问题。检查该表上是否有打开/未提交的trans?注意:有时UPDATE语句会出现这种情况;有关详细信息,请参阅我的答案。
KILL 38239;
KILL 38240;
# may update any number of customers, from 0 to all
UPDATE customers SET `active` = 'N' WHERE `last-payment-date` < 2018-01-01;