2017-08-30 51 views
0

发生了什么事,我们有一个bash脚本以下MySQL的任务:当MySQL插入一个表格范围WAIT_TIMEOUT限制

INSERT INTO blah blah blah; 


ALTER TABLE table RENAME TO table_OLD; 

现在MySQL的INSERT查询11个多小时运行,仍然没有完成。然后开始ALTER表查询,使自己等待元数据锁,因为INSERT查询仍在运行(根据“SHOW FULL PROCESSLIST & SHOW ENGINE INNODB STATUS”)。

当mysql插入一个达到wait_timeout限制(8小时)的表时发生了什么。一旦达到限制,MySQL会在解锁插入的表的同时继续运行它吗?谢谢!

以下是一些测试:当INSERT INTO超过1秒时,INSERT INTO查询仍显示正在运行并最终结束。 “Wait_timeout”限制真的有什么用处?阅读MySQL用户手册后,我仍然很困惑。 (https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_wait_timeout)有什么想法?

SET SESSION wait_timeout = 1; 

SHOW SESSION VARIABLES LIKE "wait_timeout"; -- 1 

INSERT INTO blah blah blah; 


ALTER TABLE table RENAME TO table_OLD; 

回答