mysql 테이블이 사용되는지 또는 애플리케이션이 쉘 스크립트의 테이블에 액세스하는지 확인하는 방법은 무엇입니까?

mysql 테이블이 사용되는지 또는 애플리케이션이 쉘 스크립트의 테이블에 액세스하는지 확인하는 방법은 무엇입니까?

쉘 스크립트는 mysql테이블 덤프를 수행하고 있지만 테이블을 덤프하기 전에 다른 응용 프로그램에서 해당 테이블을 사용하고 있는지 확인하고 싶습니다. 그렇다면 애플리케이션이 테이블 로드를 중지할 때까지 기다렸다가 루프를 입력하고 mysqdump완료되면 계속하고 싶습니다 .

답변1

명령을 사용해야합니다.

SHOW OPEN TABLES

내 시스템에서 실험하기

명령을 실행했는데 이것이 내가 얻은 초기 출력입니다.

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

이제 약 2백만 개의 레코드가 포함된 테이블( )에 대해 쿼리를 실행하고 있습니다 SELECT. table1다른 mysql 연결을 열고 제가 언급한 쿼리를 실행했습니다. 내가 얻는 결과는 다음과 같습니다.

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

In_use따라서 위 출력에서 ​​이 열은 테이블이 현재 사용 중임을 지정하는 것이 분명합니다 .

관련 정보