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따라서 위 출력에서 ​​열이 테이블이 현재 사용되고 있음을 지정한다는 것이 분명합니다 .

관련 정보