다음 편집기에서는 MySQL innodb_autoinc_lock_mode를 소개합니다. 에디터가 꽤 좋다고 생각해서 지금 공유해서 참고용으로 올려보겠습니다. 편집기를 따라 살펴보겠습니다.
innodb_autoinc_lock_mode 매개변수는 auto_increment 열이 있는 테이블에 데이터를 삽입할 때 관련 잠금의 동작을 제어합니다.
이를 설정하면 성능과 성능이 향상될 수 있습니다. 보안 균형(마스터-슬레이브 데이터 일관성) 달성
[0] 먼저 insert를 분류해 보겠습니다
우선 insert는 일반적으로 나누어집니다. 세 가지 범주로 분류:
1. t(이름) 값에 삽입('test')
데이터 로드와 같은 대량 삽입 | into..select .... from ....
3. t(id,name) 값(1,'a'),(에 삽입하는 것과 같은 혼합 삽입 null,'b'),(5,'c');
[1] innodb_autoinc_lock_mode 설명
innodb_auto_lockmode에는 세 가지 값 :
1.0 전통을 의미
2.1 일관성을 의미
3. >
【1.1】tradition(innodb_autoinc_lock_mode=0) 모드:
1. 이전 버전과의 호환성을 제공합니다[1.2] 연속(innodb_autoinc_lock_mode=1) 모드:
1. 이 모드에서는 단순 삽입이 최적화되었습니다. 한 번에 삽입되는 값의 수는 즉시 결정될 수 있으므로 MySQL은 일반적으로 이 삽입 문에 대해 한 번에 여러 개의 연속된 값을 생성할 수 있으며 이는 복제에도 안전합니다(문 기반의 안전성을 보장합니다). 복제)
【1.3】interleaved(innodb_autoinc_lock_mode=2) 모드
【2】바이너리 파일 형식이 혼합 행인 경우 이 세 가지 값 중 하나가 복사 안전합니다.
mysql은 이제 바이너리 형식을 행으로 설정할 것을 권장하므로 binlog_format가 명령문이 아닌 경우 innodb_autoinc_lock_mode=2를 사용하는 것이 가장 좋습니다. . 더 나은 성능.
마지막으로 auto_increment에 대한 예시로 마무리합니다예:걱정하지 마세요업데이트auto_increment 열의 값
1단계: 장면 재현
create table t(x int auto_increment not null primary key); insert into t(x) values(0),(null),(3); select * from t; +---+ | x | +---+ | 1 | | 2 | | 3 | +---+
2단계: 문제가 발생한 SQL 재현
update t set x=4 where x=1; select * from t; +---+ | x | +---+ | 2 | | 3 | | 4 | +---+
3단계: 평소 표현 재현
insert into t(x) values(0); ERROR 1062 (23000): Duplicate entry '4' for key 'PRIMARY'
4단계: 요약 문제
첫 번째 단계를 실행한 후 mysql은 다음 auto_increment 값이 4라는 것을 알게 됩니다. 두 번째 단계를 실행한 후, mysql은 4가 인위적으로 점유된 것을 알지 못하여 세 번째 단계 실행 시 오류가 발생하였다. [관련 추천]1.테이블 기본 키 충돌 시 오류에 대한 자세한 설명 innodb_index_stats는 데이터를 가져옵니다
3.mysql에서 innodb_autoinc_lock_mode의 자세한 예
5.위 내용은 innodb_autoinc_lock_mode 메소드의 자세한 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!