como verificar se a tabela mysql é usada ou se uma aplicação acessa a tabela no shell script?

1

Um script de shell está fazendo o dump para uma tabela mysql , mas antes de descartar a tabela, quero verificar se essa tabela é usada por qualquer outro aplicativo. Nesse caso, quero aguardar e entrar em um loop até que o aplicativo pare de carregar a tabela e continue com o mysqdump após a conclusão.

    
por Charles nakhel 27.03.2014 / 22:37

1 resposta

2

Você precisa usar o comando

SHOW OPEN TABLES

Experiência no meu sistema

Eu executei o comando e esta é a saída inicial que recebi.

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

Agora, executei uma consulta SELECT em uma tabela ( table1 ) que tinha cerca de 2 milhões de registros. Eu abri outra conexão mysql e executei a consulta que eu havia mencionado. A saída que eu tenho é,

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

Portanto, da saída acima, é evidente que a coluna In_use especifica que a tabela está sendo usada no momento.

    
por 27.03.2014 / 22:42