mysqlテーブルが使用されているかどうか、またはアプリケーションがシェルスクリプトのテーブルにアクセスしているかどうかを確認する方法は?

mysqlテーブルが使用されているかどうか、またはアプリケーションがシェルスクリプトのテーブルにアクセスしているかどうかを確認する方法は?

シェルスクリプトはmysqlテーブルダンプを実行していますが、テーブルをダンプする前に他のアプリケーションがそのテーブルを使用していることを確認したいと思います。その場合は、アプリケーションがテーブルのロードを停止するのを待ってループを入力し、mysqdump完了したら続行したいと思います。

答え1

コマンドを使用する必要があります。

SHOW OPEN TABLES

私のシステムで実験する

コマンドを実行しましたが、これが私が得た初期出力です。

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

今、約200万のレコードを含むテーブル()に対してクエリを実行していますSELECTtable1別のmysql接続を開き、私が言及したクエリを実行しました。私が得た結果は次のとおりです。

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

In_useしたがって、上記の出力では、この列はテーブルが現在使用中であることを指定することは明らかです。

関連情報