데이터베이스가 자동으로 기본 키를 증가시키나요?

王林
풀어 주다: 2024-07-12 18:33:57
원래의
660명이 탐색했습니다.
1 모든 테이블에 자동 증가 기본 키가 있어야 합니까?

반드시 그런 것은 아닙니다
자동 증가 기본 키는 행 삽입 속도를 높이고, 테이블 공간 활용에 이점이 있으며, 조각화를 덜 명확하게 만들 수 있습니다.

그러나 매우 빈번하고 상대적으로 집중된 uid 기반 쿼리와 같은 일부 콘텐츠의 경우 기본 키 자동 증가를 사용하지 않고 uid+id를 복합 기본 키로 사용하면 쿼리 효율성이 높아집니다. 하지만 삽입과 조각화가 증가합니다. 그러나 데이터베이스의 스토리지 유형이 SSD라면 이 문제는 존재하지 않습니다.

따라서 대부분의 경우 테이블에 자동 증가 기본 키가 있는 것이 맞습니다.

2 자동증가되는 기본키 사업이 독특한가요?

반드시 그런 것은 아닙니다

단일 테이블 구조에서는 그렇습니다.

여러 테이블의 경우 접미사를 다르게 설정하거나 간격을 동일하게 설정하는 등의 특정 전략이 반드시 필요한 것은 아닙니다.

데이터베이스가 자동으로 기본 키를 증가시키나요?

3 자체 증가하는 기본 키가 비즈니스에 영향을 미칠 수 있나요?

권장하지 않습니다.

예를 들어 테이블에는 테이블 내에서 고유한 자동 증가 기본 키가 있을 수 있습니다. ID를 기준으로 쿼리하고 업데이트하는 경우 작업이 단순화될 수 있습니다. 그러나 일반적으로 비즈니스와 관련성이 있고 고유성이 요구되는 경우 비즈니스는 형식이나 알고리즘 사용, 해시 생성 등을 사용하는 등 독립적으로 이를 유지해야 합니다.

4 테이블이 여러 개인 경우 비즈니스에서 유지 관리하는 기본 키의 고유성을 어떻게 유지하나요?

자동 증가 키 간격 세그먼트를 유지하고 서버는 매번 하나의 세그먼트를 가져오고 낙관적 잠금이 업데이트됩니다. 이 필드를 유지하려면 추가 테이블이나 전략이 필요합니다.

알고리즘 A를 기반으로 yyyyMMddHHmmss + 테이블 번호 모드 값 + 난수와 같은 고정 시간 접두사를 사용하여 자릿수를 늘려 충돌 가능성을 줄입니다. 테이블 필드에 고유 제약 조건이 있습니다(그러나 이 제약 조건은 신뢰할 수 없는 경우도 있음). 삽입 중에 중복 필드 값 예외가 발생하면 삽입이 다시 생성됩니다.

알고리즘 B를 기반으로 고정 시간 접두사(예: yyyyMMddHHmmss+고정 자릿수, 충돌 자동 증가 값 N+임의 수). 충돌 가능성을 줄이기 위해 비트 수를 늘릴 필요는 없습니다. 삽입 시 중복 필드 값 예외(N++)가 발생하면 더 이상 충돌이 없을 때까지 다시 삽입합니다. 이제부터는 N이 중위로 사용되고 N은 다시 시작한 후에도 계속 사용됩니다. 반복적으로 예외가 발생하면 N++로 동일한 작업을 다시 수행하면 됩니다. 의도적으로 N의 mod 값을 언급할 필요는 없습니다.

중위 관리, 즉 중위를 중앙 서버에 보고하는 것을 기반으로 서버의 ID 관계가 어딘가에 캐시되어 동적으로 할당된다는 것을 알 수 있습니다.

이 외에도 다양한 방법이 있지만 아직 사용해본 적이 없어서 자세히 설명하지 않겠습니다.
알고리즘 B는 간단하고 통신 횟수가 적으며 충돌 횟수가 제한되어 있습니다. 알고리즘 A에는 충돌 횟수가 무한하지만 그 비율은 매우 낮습니다. 그러나 동시성이 높은 경우 초기화 중에 알고리즘 B가 알고리즘 A보다 더 폭력적입니다.

간격 세그먼트 및 중위 관리는 둘 다 중앙 노드 개념을 도입합니다. 이는 의존도가 높지만 상대적으로 안정적이며 업계에서 보다 일반적인 구현 방법입니다.

위 내용은 데이터베이스가 자동으로 기본 키를 증가시키나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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