auto_increment id가 1개씩 증가하지 않는 이유는 무엇입니까?설정 방법은?
MariaDB Galera 클러스터(3개 노드)가 있고uid
자동으로 증가하여 테이블의 주요 키가 되다
`uid | int(11) | NO | PRI | NULL | auto_increment`.
MariaDB [hello_cluster]> select uid from table order by uid limit 10;
+-----+
| uid |
+-----+
| 3 |
| 6 |
| 9 |
| 12 |
| 15 |
| 18 |
| 21 |
| 24 |
| 27 |
| 30 |
+-----+
다음 명령을 시도했지만 작동하지 않습니다.
alter table uid AUTO_INCREMENT=1
이는 설계상이며 MariaDB Galera Cluster - 알려진 제한 사항:
자동 증분 값은 순차적으로 증가하지 마십시오.Galera는 자동 증분 인크리먼트에 기초한 메커니즘을 사용하여 고유한 충돌 없는 시퀀스를 생성하므로 모든 노드에서 시퀀스에 공백이 생깁니다.
그 이유는 "Multi Masters를 사용한 자동 증분 관리"에서 설명되며, 관찰된 자동 증분이 클러스터 수와 동일한 단계를 갖는 이유이기도 합니다.
MySQL에는 멀티 마스터 환경에서 자동 증분 '시퀀스'를 관리하기 위한 시스템 변수 auto_increment_increment 및 auto_increment_offset이 있습니다.이러한 변수를 사용하면 멀티 마스터 복제를 설정할 수 있습니다.이 경우 각 마스터노드의 시퀀스가 자동으로 인터리브되므로 클러스터 내에서 경합이 발생하지 않습니다.어떤 마스터가 INSERT를 받든 상관없습니다.
클러스터가 없는 경우에도 트랜잭션 롤백 및 삭제된 레코드로 인해 고밀도 시퀀스가 되도록 자동 증가 열에 의존하는 것은 "좋은" 아이디어가 거의 없습니다.
wsrep_auto_control=오프
를 사용하면 mysql에서 auto_sysql과 auto_sysql을 변경할 수 있습니다.마스터 슬레이브 환경에서는 자동 증가 키와 우발적으로 충돌할 가능성이 있으므로 마스터 슬레이브 환경에서만 권장합니다.
이게 누군가에게 도움이 되길 바랍니다.
언급URL : https://stackoverflow.com/questions/23022574/why-the-auto-increment-id-does-not-increase-one-by-one-how-to-set-it
'programing' 카테고리의 다른 글
@유효한 주석으로 하위 개체 목록의 유효성을 검사하지 않습니다. (0) | 2022.09.05 |
---|---|
VueJS: 렌더 함수에서 계산된 값에 액세스하는 방법 (0) | 2022.09.05 |
두 판다 DataFrame 열의 사전 작성 방법 (0) | 2022.09.04 |
각각 이전 vue-router의 vuex 작업을 사용하려면 어떻게 해야 합니까? (0) | 2022.09.04 |
노드에서 NULL 값을 삽입하는 방법파라미터화된 입력을 사용하여 JS/Javascript to MySQL을 사용합니까? (0) | 2022.09.04 |