MariaDB FLUSH TABLES命令只關閉未使用的表

例會話一
select id,sleep(60) from t1;
因未執行完,t1表持有METADATA LOCK(MDL)元數據鎖

會話二
FLUSH TABLES;
在MariaDB 10.4 版本以前,執行FLUSH TABLES會把所有的表強制關閉,因會話一持有MDL元數據鎖,固FLUSH TABLES會等待Waiting for table metadata lock

在MariaDB 10.4 GA版本,將只關閉未使用的表,正在使用中的表忽略不受影響。(除非你手工指定表,如FLUSH TABLES t1,將會強制關閉t1表)

場景:MHA在線切換調用master_ip_online_change腳本時,第一步會執行FLUSH NO_WRITE_TO_BINLOG TABLES關閉所有表,此時如果你的數據庫有未執行完的慢SQL,FLUSH NO_WRITE_TO_BINLOG TABLES就會卡住,導致無法切換。

注:MySQL 8.0.17版本不支持該功能



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章