Тип столбца первичного ключа MySQL для больших таблиц

StackOverflow https://stackoverflow.com/questions/816646

Вопрос

Я работаю над проектом с относительно большой таблицей БД (700 тыс. строк).

Ошибка, которую я допустил при проектировании схемы БД.Когда количество строк увеличивалось, мне приходилось увеличивать тип столбца ID bigint(Икс).

Теперь это bigint(44).Я боялся устанавливать высокое значение x, так как думал, что это может значительно замедлить производительность.Возможно я ошибаюсь..

Пожалуйста, помогите мне в решении проблемы.

Какой тип столбца я могу установить один раз и забыть об этой проблеме?

Что мне следует лучше изучить в области проектирования схемы БД?

Это было полезно?

Решение

Когда вы создаете столбец как BIGINT(44) «44» — это ширина дисплея — она не влияет на диапазон значений, которые вы можете сохранить, или на скорость их извлечения.

Для автоинкрементного идентификатора вы хотите использовать UNSIGNED номер, например BIGINT(44) UNSIGNED.Это удвоит диапазон значений и добавит дополнительное ограничение, что обычно хорошо.

Unsigned Int будет хранить до 4 294 967 295 человек. Непознанный Bigint будет хранить до 18 446 744 073,709 551 615 - вы не собираетесь заполнять это в ближайшее время.

Вы не говорите, насколько быстро растет ваш максимальный идентификатор. Если вы не вставляете много строк, вам следует придерживаться UNSIGNED INT так как занимает меньше места.

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top