如何檢查mysql表是否被使用或應用程式在shell腳本中存取該表?

如何檢查mysql表是否被使用或應用程式在shell腳本中存取該表?

shell 腳本正在對mysql錶進行轉儲,但在轉儲表之前我想檢查該表是否被任何其他應用程式使用。如果是這樣,我想等待並進入循環,直到應用程式停止載入表並在mysqdump完成後繼續。

答案1

你需要使用指令,

SHOW OPEN TABLES

在我的系統中進行實驗

我運行了該命令,這是我得到的初始輸出。

"Database"  "Table"        "In_use"           "Name_locked"
db_name   "table1"           "0"                 "0"
db_name   "table2"           "0"                 "0"

現在,我對包含大約 200 萬筆記錄的SELECT表 ( ) 執行查詢。table1我打開了另一個 mysql 連接並運行了我提到的查詢。我得到的輸出是

"Database"  "Table"        "In_use"           "Name_locked"
db_name   "table1"           "1"                 "0"
db_name   "table2"           "0"                 "0"

因此,從上面的輸出來看,很明顯該In_use列指定目前正在使用該表。

相關內容