如何检查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列指定当前正在使用该表。

相关内容