자동 증가 기본 키 ID에 공백이 있는 이유는 무엇입니까?

Patricia Arquette
풀어 주다: 2024-11-27 00:51:12
원래의
834명이 탐색했습니다.

Why Are There Gaps in My Auto-Increment Primary Key IDs?

자동 증가 기본 키: 계산 공백 설명

자동 증가 기본 키가 있음에도 불구하고 할당된 기본 키에 공백이 있음을 발견했습니다. ID로 인해 행 개수와 최대 ID 간에 불일치가 발생합니다. 이 동작은 자동 증가 메커니즘의 고유한 측면이며 걱정할 필요가 없습니다.

이유를 이해하려면 두 개의 겹치는 트랜잭션과 관련된 다음 시나리오를 고려하십시오.

  1. 트랜잭션 1 삽입 레코드를 생성하고 ID 42를 얻습니다.
  2. 트랜잭션 2는 삽입을 시작하고 ID를 받습니다. 43.

이제 트랜잭션 1이 실패하고 롤백된다고 가정해 보겠습니다. 이 경우 할당된 ID 42는 사용되지 않은 상태로 유지됩니다. 결과적으로 다음 할당된 ID는 43이 되어 44의 공백을 남깁니다.

이러한 동작은 동시 트랜잭션이 서로 차단되지 않고 진행될 수 있도록 하는 보호 장치입니다. 지속적인 ID를 적용하려면 트랜잭션의 순차적 실행이 필요하며 이는 확장성에 심각한 영향을 미칠 수 있습니다.

당연히, 레코드를 삭제하지 않더라도 자동 증가 ID에 공백이 있을 것으로 예상되며 문제를 나타내지는 않습니다.

위 내용은 자동 증가 기본 키 ID에 공백이 있는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿