your programing

mysql에서 자동 증가가 생성 할 수있는 가장 큰 ID 번호는 무엇입니까?

lovepro 2020. 12. 30. 19:52
반응형

mysql에서 자동 증가가 생성 할 수있는 가장 큰 ID 번호는 무엇입니까?


하루에 10-20k 행에 대해 이야기하는 데이터로 빠르게 채워진 데이터베이스가 있습니다.

자동 증가 옵션이있는 ID의 제한은 무엇입니까? ID가 INTEGER로 생성되면 부호없는 값에 대해 최대 값 2,147,483,647을 할 수 있습니까?

하지만 자동 증가가 이보다 높으면 어떻게 될까요? 모두 무너 지나요? 그렇다면 해결책은 무엇입니까?

많은 사람들이 큰 데이터베이스를 가지고 있다고 확신하며 듣고 싶습니다.

감사합니다.


너무 빨리 범위를 벗어나는 것이 걱정된다면 PK를 UNSIGNED BIGINT로 설정합니다. 이는 18446744073709551615의 최대 값을 제공하며 충분합니다.


                    | Min. (inclusive)           | Max. (inclusive)
-----------------------------------------------------------------------------
INT Signed (+|-)    |             -2,147,483,648 |             +2,147,483,647
-----------------------------------------------------------------------------
INT Unsigned (+)    |                          0 |              4,294,967,295
-----------------------------------------------------------------------------
BIGINT Signed (+|-) | -9,223,372,036,854,775,807 | +9,223,372,036,854,775,806
-----------------------------------------------------------------------------
BIGINT Unsigned (+) |                          0 | 18,446,744,073,709,551,615

MySQL 참조 .

열 ID (INT unsigned)가있는 mysql 테이블이 있고 테이블에 4,294,967,295 개의 레코드가있는 경우 레코드를 1 개 더 삽입하려고하면 새 레코드의 ID가 자동으로 변경되고 최대 "4,294,967,295"로 설정됩니다. 따라서 MySQL 오류 메시지가 표시 Duplicate entry '4294967295' for key 'PRIMARY'되고 열이 기본 키로 설정된 경우 중복 된 ID가 있습니다.

2 가능한 해결책 :

  1. 쉬운 접근 방식 : Dan Armstrong이 말한 것처럼 ID를 BIGINT unsigned 로 설정하여 한계를 확장하십시오 . 이것이 깨지지 않는다는 의미는 아니지만! 테이블이 정말 커지면 성능이 영향을받을 수 있습니다.
  2. 더 어려운 접근 방식 : 조금 더 복잡한 접근 방식이지만 더 나은 성능을 제공하고 실제로 데이터베이스 제한이없는 파티셔닝을 사용합니다 (유일한 제한은 물리적 하드 디스크의 크기입니다). Twitter (및 이와 유사한 거대한 웹 사이트)는 하루에 수백만 건의 트윗 (기록)에이 접근 방식을 사용합니다!

참조 URL : https://stackoverflow.com/questions/10707072/what-is-the-biggest-id-number-that-autoincrement-can-produce-in-mysql

반응형