4 백만 개가 넘는 레코드가있는 트랜잭션 테이블에서 실행되는 Select 쿼리가 있습니다. 이 쿼리를 실행할 때마다 특정 트랜잭션 테이블의 모든 쓰기 및 업데이트 작업이 일시 중단되고 잠금 대기 시간 초과를 초과하는 Java 측에서 예외가 발생하기 시작하면 트랜잭션을 다시 시작하십시오. 현재 잠금 대기 시간 초과는 200 초로 설정됩니다. select 문이 테이블에서 이러한 잠금을 만들고 모든 삽입/업데이트 문을 차단할 수있는 이유를 이해할 수 없습니다. 테이블 스토리지 엔진은 InnoDb이고 기본 키는 자동 증가 키입니다. MySQL 버전은 5.1.40입니다. 또한 select 문을 실행하기 전에 트랜잭션을 시작하지 않습니다.Select 문은 InnoDB 테이블에서 읽기/쓰기 작업을 차단합니다.
아이디어가 있으십니까?
은 당신이 쿼리에 EXPLAIN 봤어 모델을 이해하는 데 도움이 될 수 있습니다? 뭐라고 했지? –
예 설명을 시도했습니다. 그것은 모든 인덱스가 타격을 가하는 것을 보여줍니다. – Anees