Каков самый большой идентификационный номер, который autoincrement может произвести в mysql

У меня есть база данных, которая быстро заполняется данными, мы говорим о 10-20k строках в день.

Что такое ограничение ID с опцией и autoincrement? Если ID создается как целое число, я могу сделать максимальное значение 2,147,483,647 для значений без знака?

но что, когда autoincrement идет выше этого? Все рушится? Что тогда будет решением?

Я уверен, что у многих людей есть большие базы данных, и я хотел бы их услышать.

спасибо вы.

2 ответов


Если вы беспокоитесь о том, что он слишком быстро выходит за рамки, я бы установил PK как неподписанный 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,776,000 | +9,223,372,036,854,776,000
-----------------------------------------------------------------------------
BIGINT Unsigned (+) |                          0 | 18,446,744,073,709,552,000

Если у вас есть таблица mysql с идентификатором столбца (INT unsigned), и таблица имеет 4,294,967,295 записей, то вы пытаетесь вставить еще 1 запись, идентификатор новой записи будет автоматически изменен и установлен на max, который является "4,294,967,295", поэтому вы получаете сообщение об ошибке MySQL Duplicate entry '4294967295' for key 'PRIMARY', у вас будут дублированные идентификаторы, если столбец установлен как первичный ключ.

2 Возможных Решения:

  1. Простой Подход: расширить пределы, установка ID в BIGINT без знака, как Дэн Армстронг сказал. Хотя это не значит, что он нерушим! и производительность может быть затронута, когда таблица становится действительно большой.
  2. Более Жесткий Подход: перегородки используйте, который немного более сложный подход, но дает лучшую производительность и действительно не ограничивает базу данных (ваш единственный предел-размер вашего физического жесткого диска.). Twitter (и подобные огромные веб-сайты) используйте этот подход для своих миллионов твитов (записей) в день!