2014-05-21 12 views
2

AWS에서 innoDB를 사용하고 있습니다. 내 로그에 다음과 같은 메시지의 톤을 점점 계속 :innoDB가 테이블을 잠그는 이유

나는 이노은 행 수준 잠금을했다 생각

잠금 테이블 수준의 대기. 내 코드에는 잠금 테이블이 없습니다. 왜 이런 일이 일어날 지 아는 사람이 있습니까?

+0

읽기를 가지고 http://www.mysqlperformanceblog.com/2012/07/31/innodb-table-locks/ –

+0

를 통해 MySQL의 5.5 행 잠금 문제 때문에 훨씬 더 문제가되었다 (stric? t). 5.5 이전에는 선택이 5.5 이상에서 잠금을 일으키지 않았습니다 (자세한 내용은 여기 : http://dev.mysql.com/doc/refman/5.5/en/innodb-lock-modes.html). –

답변

0

이 이노 디비는 테이블 잠금 (AUTO-INC처럼) 할이 점에서이 문서를 참조하십시오, 당신에게 케이스를 적용하면 볼 수있는 아래 상황 : InnoDB table locks 또한

설정하거나 MySQL의 구성에 innodb_table_locks=0 설정되었는지 확인 InnoDB의 테이블 잠금이 그림에 관해서 InnoDB Startup Options and System Variables

1

특정 이유가 있습니다 : 여기에 문서에 대한 .Refer

1) InnoDB의 테이블 잠금 알고있는 경우 innodb_table_locks = 1 (기본값)와 autocommit = 0, 그리고 MySQL의 레이어 위에 InnoDB 행 수준 잠금에 대해 알고 있습니다.

innodb_table_locks=0을 설정하고 MySQL 서버를 다시 시작해야합니다.

2) 이전에 지정된 테이블의 AUTO_INCREMENT 컬럼을 초기화하는 동안, InnoDB는 AUTO_INCREMENT 컬럼과 연관된 인덱스의 끝에 배타적 잠금을 설정한다. 자동 증가 카운터에 액세스하는 동안, InnoDB는 특정 트랜잭션을 종료하지 않고 현재의 SQL 문의 끝까지만 잠금을 유지하는 특정 AUTO-INC 테이블 잠금 모드를 사용합니다. 다른 클라이언트는 AUTO-INC 테이블 잠금이 유지되는 동안 테이블에 삽입 할 수 없습니다.

당신은뿐만 아니라이 블로그 게시물을 참조 할 수 있습니다 : http://www.mysqlperformanceblog.com/2012/07/31/innodb-table-locks/