Ответ 1
Если вы беспокоитесь о том, что это слишком быстро выходит из-под контроля, я бы поставил PK в качестве НЕПРАВИЛЬНОГО BIGINT. Это дает вам максимальное значение 18446744073709551615, которого должно быть достаточно.
У меня есть база данных, которая быстро заполняется данными, которые мы говорим о 10-20 тыс. строк в день.
Каков предел идентификатора и автоинкремента? Если ID создается как INTEGER, тогда я могу сделать максимальное значение 2 147 483 647 для неподписанных значений?
Но что, когда автоинкремент идет выше этого? Все это рушится? Что тогда будет решением?
Я уверен, что у многих людей большие базы данных, и я хотел бы их услышать.
Спасибо.
Если вы беспокоитесь о том, что это слишком быстро выходит из-под контроля, я бы поставил 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,775,807 | +9,223,372,036,854,775,806
-----------------------------------------------------------------------------
BIGINT Unsigned (+) | 0 | 18,446,744,073,709,551,615
Если у вас есть таблица mysql с идентификатором столбца (INT unsigned), и таблица содержит 4 294 967 295 записей, то вы пытаетесь вставить еще 1 запись, идентификатор новой записи будет автоматически изменен и установлен на максимум, равный "4 294 967 295", таким образом, вы получаете сообщение об ошибке MySQL. Duplicate entry '4294967295' for key 'PRIMARY'
, у вас будут дублированные идентификаторы, если столбец установлен в качестве первичного ключа.
2 возможных решения: