■ Wait Event 테이블 종류Performance schema에서 대기(waits) 도구는 시간이 걸리는 이벤트를 보여줍니다. 이벤트 계층 구조 내에서, 대기 이벤트는 스테이지(Stage) 이벤트, 명령문(Statement) 이벤트, 트랜잭션(Transaction) 이벤트와 같은 레벨의 이벤트입니다. • 설정방법mysql> SELECT * FROM performance_schema.setup_instruments WHERE NAME LIKE 'wait/%';+----------------------------------------+---------+-------+| NAME | ENABLED | TIMED |+---------..
■ Internal Locking Methods이 섹션에서는 내부 잠금에 대해 설명합니다. 즉, 여러 세션으로 테이블 내용에 대한 경합을 관리하기 위해 MySQL서버 자체에서 잠금이 수행됩니다. 이 유형의 잠금은 전적으로 서버에 의해 수행되며 다른 프로그램과 관련이 없기 때문에 내부적입니다.+ Row-Level(행 수준) 잠금+ 테이블 레벨(Table-Level) 잠금+ 잠금 유형 선택 ▶︎ 행 단위(Row-Level) LockingMySQL은 InnoDB 테이블에 Row-level(행 수준) 잠금을 사용하여 여러 세션의 동시 쓰기 액세스를 지원하므로 다중 사용자, 동시성이 높은 OLTP 애플리케이션에 적합합니다. 단일 InnoDB 테이블에서 여러 개의 동시 쓰기 작업을 수행 할 때 교착 상태를 피하려면..
■ LOCK TABLES 그리고 UNLOCK TABLES 문법LOCK TABLES tbl_name [[AS] alias] lock_type [, tbl_name [[AS] alias] lock_type] ...lock_type: { READ [LOCAL] | [LOW_PRIORITY] WRITE}UNLOCK TABLESMySQL은 클라이언트 세션이 테이블에 액세스하기 위해 다른 세션과 협력하거나 세션에 독점 액세스가 필요한 기간 동안 다른 세션이 테이블을 수정하지 못하도록 하기 위해 명시적으로 테이블 잠금을 획득할 수 있도록 합니다. 세션은 자체 잠금만 획득하거나 해제할 수 있습니다. 한 세션은 다른 세션에 대한 잠금 또는 다른 세션이 보유한 잠금 해제를 획득할 수 없습니다. 잠금은 트..
잠금상태에서 읽기, UPDATE 또는 DELETE는 일반적으로 SQL문 처리시 스캔되는 모든 인덱스 레코드에 대해 레코드 잠금을 설정합니다. 명령문에 행을 제외시킬 WHERE조건이 있는지 여부는 중요하지 않습니다. InnoDB는 정확한 WHERE조건을 기억하지 않지만 스캔된 인덱스 범위만 알고 있습니다. 잠금 장치는 일반적으로 레코드 바로 앞의 "GAP"에 삽입을 차단하는 Next-Key 잠금 장치입니다. 그러나 GAP 잠금을 명시적으로 비활성화하여 Next-Key 잠금을 사용하지 않을 수 있습니다. 트랜잭션 격리 수준은 설정된 잠금에 영향을 줄 수 있습니다. 검색에 보조 인덱스가 사용되고 설정될 인덱스 레코드 잠금이 배타적 일 경우 InnoDB는 해당 클러스터형 인덱스 레코드를 검색하여 잠금을 설정합니..