как проверить, используется ли таблица MySQL или приложение обращается к таблице в скрипте оболочки?

как проверить, используется ли таблица MySQL или приложение обращается к таблице в скрипте оболочки?

Скрипт оболочки делает дамп для mysqlтаблицы, но перед дампом таблицы я хочу проверить, используется ли эта таблица каким-либо другим приложением. Если да, я хочу подождать и войти в цикл, пока приложение не прекратит загрузку таблицы, и продолжить после mysqdumpего завершения.

решение1

Вам нужно использовать команду,

SHOW OPEN TABLES

Эксперимент в моей системе

Я выполнил команду, и вот что я получил в результате.

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

Теперь я выполнил SELECTзапрос к таблице ( table1), которая содержала около 2 миллионов записей. Я открыл еще одно соединение mysql и выполнил запрос, о котором я упомянул. Вывод, который я получил, такой:

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

Таким образом, из приведенного выше вывода очевидно, что столбец In_useуказывает на то, что таблица в данный момент используется.

Связанный контент