iden
Новичок
Вопрос по ключевым автоинкрементным полям.
Здравствуйте!
Хочу услышать вашу позицию и решение, как опытных девелоперов, на такой факт... Я пока новенький в сфере web-девелопа. К делу...
Допустим имеется таблица в mysql с ключевым автоинкрементным полем типа SMALLINT. Данных в таблице пусть будет 200 записей. При удалении имеющихся записей, значения их ключей уже не используются в новых записях. При активных добавлениях/удалениях записей последует выход за границу типа. Итого имея всего 200 записей можно переполнить поле ключа.
Т.е. если я храню в таблице с ключом типа TINYINT (которого вполне достаточно теоретически) настройки сайта, которые по определенным причинам должны иметь оборот, я получу переполнение. Тогда придется перейти на более емкий тип поля и занять на диске больше места для хранения БД. Пример конечно банальный, но суть ясна.
Вижу такие варианты выхода из ситуации:
1) Переход на более емкий тип поля(тоже когда-нибудь заполнится)
2) Клонировать таблицу(инкремент начнется сначала)
3) Перетряхивание ключа или другие решения средствами самой mysql (о таковых я ничего не слышал)
Прошу конструктивного ответа.
Спасибо.
Здравствуйте!
Хочу услышать вашу позицию и решение, как опытных девелоперов, на такой факт... Я пока новенький в сфере web-девелопа. К делу...
Допустим имеется таблица в mysql с ключевым автоинкрементным полем типа SMALLINT. Данных в таблице пусть будет 200 записей. При удалении имеющихся записей, значения их ключей уже не используются в новых записях. При активных добавлениях/удалениях записей последует выход за границу типа. Итого имея всего 200 записей можно переполнить поле ключа.
Т.е. если я храню в таблице с ключом типа TINYINT (которого вполне достаточно теоретически) настройки сайта, которые по определенным причинам должны иметь оборот, я получу переполнение. Тогда придется перейти на более емкий тип поля и занять на диске больше места для хранения БД. Пример конечно банальный, но суть ясна.
Вижу такие варианты выхода из ситуации:
1) Переход на более емкий тип поля(тоже когда-нибудь заполнится)
2) Клонировать таблицу(инкремент начнется сначала)
3) Перетряхивание ключа или другие решения средствами самой mysql (о таковых я ничего не слышал)
Прошу конструктивного ответа.
Спасибо.