SQL автоинсталляция и архивирование старых данных - PullRequest
0 голосов
/ 20 ноября 2010

Я создаю веб-приложение и имею промежуточное понимание mysql.

Я пытаюсь обдумать проблему, которую вижу.

Возможно, моя система используется для10 лет.Я обеспокоен исчерпанием значений автоинкремента.

Можно ли архивировать или выгружать старые данные из системы, чтобы открыть старые значения автоинкремента, которые использовались до этого?

Я прочитал, что автоинкремент будет продолжаться, пока не достигнет максимального значения для int, а затем выбросить ошибки ....?

Я ищу любую информацию по этой проблеме.Пример того, как другие системы, такие как системы бухгалтерского учета, справляются с этими ограничениями.

Я использую мой автоинкремент

Ответы [ 4 ]

1 голос
/ 20 ноября 2010

int unsigned = 430 миллионов в год в течение 10 лет

должно быть достаточно, если не используется bigint unsigned: P

1 голос
/ 20 ноября 2010

Нет, вы не можете вернуться к старым и устаревшим значениям autoinc.Почему бы не установить соответствующий столбец как BIGINT?Таким образом, ваше приложение может работать десятилетиями, не выходя за границы.

Я забыл сказать, что вам придется позаботиться о новом типе в логике приложения (я полагаю, это PHP).Не используйте целые числа, вместо этого используйте float.

0 голосов
/ 20 ноября 2010

Вы можете придерживаться Int. Вы можете использовать столбец GUID или естественный ключ, но нет причин отказываться от производительности запроса. Присоединение к целым будет быстрее, чем объединение столбцов guid или составных ключей. См. Документы здесь для определения диапазонов типов. UNSIGNED int или BIGINT - хорошие ставки, чтобы развеять ваши опасения по поводу нехватки номеров ...

0 голосов
/ 20 ноября 2010

Вы можете увеличить максимальное значение автоинкремента, изменив столбец id на что-то вроде BIGINT - он поддерживает числа до 9223372036854775807, вам больше не нужно И нет, вы не можете освободить старые значения идентификатора для новых записей с этим идентификатором.

...