Mysql3 [Mysql] Metadata_lock 원인 쿼리 확인 및 lock 해제 Mysql을 사용하면서 DB 작업 중에 Metadata lock은 비교적 흔하게 발생한다. 내가 주로 경험한 것은 DBeaver 등의 클라이언트 툴에서 autocommit이 꺼진 상태로 select 등의 작업이 수행된 후 해당 object(table)에 alter table등의 DDL 문을 수행한 경우에 발생하는 metadata lock이었다. 주로 이런 경우는 show full processlist;로 원인이 되는 쿼리를 찾아도 쿼리는 이미 종료된 이후이기 때문에 processlist의 info에 null로 나와 원인인 쿼리를 정확히 알 수 없는 경우가 많다. 원인이 되는 쿼리가 object에 대한 lock을 해제하지 않으면 ddl문을 재차 수행해도 metadata lock으로 인하여 제대로 수행되지 .. 2024. 1. 24. [Mysql] Error Code 1170: blob/text column used in key specification without a key length 인덱스 생성 시 다음과 같은 에러를 볼 수 있다. Error Code 1170: blob/text column used in key specification without a key length BLOB타입과 TEXT타입은 index를 생성하지 못함 -> BLOB, TEXT 타입이 아닌 컬럼으로 인덱스 생성해야함 2022. 2. 25. [Mysql] Metadata Locking Metadata Locking이란? 사용중인 오브젝트의 변경(DDL)을 방지해주는 기술로, 유효한 트랜잭션에서 사용중인 오브젝트를 변경할 수 없도록 하는 것을 말함 MariaDB에서는 사용중인 오브젝트 접근과 데이터 일관성 유지를 위해 Metadata Locking을 사용 이때, 오브젝트는 Table, procedure, function, trigger, event 등 autocommit이 "OFF"일 때 무슨 쿼리가 실행되든(SELECT포함) 트랜잭션이 시작되고, 해당 쓰레드에서 COMMIT이나 ROLLBACK 등으로 트랜잭션을 종료하기 전에는 해당 트랜잭션은 유효한 상태로 남아 있음 즉, autocommit이 "OFF"일 때는 SELECT만 해도 사용된 모든 오브젝트에 Metadata Lock이 설정.. 2021. 11. 4. 이전 1 다음 반응형