■ 메타데이터 Locking(잠금)MySQL은 메타 데이터 잠금을 사용하여 데이터베이스 객체에 대한 동시 액세스를 관리하고 데이터 일관성을 유지합니다. 메타 데이터 잠금은 테이블뿐만 아니라 스키마, 저장된 프로그램 (프로시저, 펑션, 트리거, 예약된 이벤트), 테이블 스페이스, GET_LOCK() 함수로 획득한 사용자 잠금 및 잠금 서비스로 획득한 잠금에도 적용됩니다. 성능 스키마 metadata_locks 테이블은 메타 데이터 잠금 정보를 표시합니다. 이 정보는 잠금을 보유하는 세션을 확인하고 잠금 대기등을 차단하는데 유용합니다.performance_schema의 meta_lock 테이블을 조회하면 관련된 정보를 얻을수 있습니다. 메타 데이터 잠금에는 약간의 오버 헤드가 수반되며 쿼리 볼륨이 증가함에 ..
■ Shared and Exclusive LocksInnoDB는 공유 (S) 잠금과 배타적 (X) 잠금의 두 가지 유형의 잠금이있는 표준 행 수준 잠금을 구현합니다.+ 공유 (S) 잠금은 잠금을 보유한 트랜잭션이 행을 읽을 수 있도록합니다.+ 독점 (X) 잠금은 잠금을 보유한 트랜잭션이 행을 업데이트하거나 삭제할 수 있도록 합니다. 트랜잭션 T1이 행 r에 공유 (S) 잠금을 보유하는 경우, 행 r에 대한 잠금에 대한 일부 고유 트랜잭션 T2의 요청은 다음과 같이 처리됩니다.+ T2가 S 잠금 요청을 즉시 승인 할 수 있습니다. 결과적으로 T1과 T2는 모두 r에 S 잠금을 유지합니다.+ T2에서 X 잠금 요청을 즉시 승인 할 수 없습니다. 트랜잭션 T1이 행 r에서 배타적 (X) 잠금을 보유하는 경우,..