2015-09-16 2 views
0

У меня есть столбец с именем user_id. где он автоматически увеличивается каждый раз, когда регистрируется новый пользователь.Неиспользованная длина/значение ячейки

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

Я волнуюсь, если я это сделал, неиспользованная длина в столбце может стоить бит/хранилище в базе данных, что замедлит время обработки. Будет ли это так?

ответ

1

99.999% времени простой INT выполнит эту работу, например user_id. Не нужно сходить с ума. Это означает, что 2,1 миллиарда пользователей, или, другими словами, два человека подписываются в секунду, каждую секунду дня, на 34 года.

Twitter, Facebook, Google и несколько других потребуется для 64-битного целого для таких вещей. Остальные из нас в порядке.

Не забывайте, что стоимость хранения INT составляет 4 байта, независимо от установленной точности. Для 64-разрядного номера это 8 байтов. Разница здесь не огромная, но с точки зрения производительности индекса, INT превзойдет BIGINT небольшой, но значимой суммой, поэтому переезд BIGINT по всей доске - это излишество во всех, кроме самых экстремальных случаях.

Короткий ответ: не беспокойтесь об этом. Используйте INT.

Смежные вопросы