2011-05-02 2 views
1

MyISAM 테이블을 보류중인 삽입 락이 보입니다. 쿼리 자체가 뛰어난 것은 아니지만 FULL PROCESSLIST에는 INSERT과 잠겨져 있고 SELECT의 무리가 기다리고있는 것처럼 보입니다.기본적으로 MyISAM 테이블은 얼마나 오래 잠길 것인가?

쿼리 자체가 뛰어난 것은 아닙니다. the MySQL docs을 읽으면 나는 탁월한 것을 볼 수 있습니다 : "구멍이 있으면 병행 삽입을 사용할 수 없습니다."

나는 이것이 인덱스의 구멍을 의미한다고 가정하고 여기 내 인덱스에는 프라이 머리 키에 연속적인 ID 번호가 없다는 의미에서 확실히 "구멍"이 있습니다. 그래서 궁금 하군요 : 동시성이 비활성화되고 일부 INSERT이 멈 추면 얼마나 오래 그 잠금을 유지할 것인가? 그리고 전체 테이블 (그리고 그 행뿐 아니라)에서 잠금을 유지할 것인가?

답변

2

MyISAM은 행 수준 잠금을 지원하지 않으므로 잠금이 전체 테이블에 있습니다. 잠금 시간 초과에 대한 정보를 찾지 못했습니다. 삽입이 이론적으로 영원히 중단 될 수 있습니다.

+0

내가 확인할 수 있습니다 ... – superhero