DDL 문이 실행되면 MDL 메타데이터 쓰기 잠금이 자동으로 테이블에 추가되며 트랜잭션이 커밋될 때까지 잠금이 해제되지 않습니다. 이 잠금의 목적은 테이블 구조의 무결성과 메타데이터의 일관성을 보호하는 것입니다.
제작 환경은 아래 그림과 같습니다. 세션 A는 트랜잭션을 열고 DQL을 실행합니다
이때 세션 B는 두 필드에 전체 텍스트 인덱스를 추가해야 합니다. table
실행 후 마스터가 정체된 것으로 확인됨
관련 프로세스 목록을 확인하여 mdl 메타데이터 잠금을 얻기 위해 기다리고 있음을 확인함
select * from information_schema.processlist where info like '%alter table `bas_business_type_text` %'
을 살펴보면 테이블 잠금 상황에서 읽기 및 쓰기 잠금이 상호 배타적인 것을 볼 수 있습니다
SELECT * FROM sys.schema_table_lock_waits
프롬프트에 따라 kill 11을 실행
세션 B가 성공적으로 실행된 것을 볼 수 있습니다
위 내용은 MySQL에서 테이블 메타데이터 잠금 대기 예외를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!