¿Cómo comprobar si se utiliza la tabla MySQL o si una aplicación accede a la tabla en un script de Shell?

¿Cómo comprobar si se utiliza la tabla MySQL o si una aplicación accede a la tabla en un script de Shell?

Un script de shell está realizando un volcado de una mysqltabla, pero antes de volcar la tabla quiero verificar si esta tabla es utilizada por alguna otra aplicación. Si es así, quiero esperar y entrar en un bucle hasta que la aplicación deje de cargar la tabla y continuar con ella mysqdumpdespués de que finalice.

Respuesta1

Necesitas usar el comando,

SHOW OPEN TABLES

Experimentar en mi sistema

Ejecuté el comando y este es el resultado inicial que obtuve.

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

Ahora ejecuté una SELECTconsulta en una tabla ( table1) que tenía alrededor de 2 millones de registros. Abrí otra conexión mysql y ejecuté la consulta que había mencionado. El resultado que obtuve es,

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

Entonces, del resultado anterior, es evidente que la In_usecolumna especifica que la tabla se está utilizando actualmente.

información relacionada