Числовые типы и размер строки в MySQL - PullRequest
1 голос
/ 08 июля 2010

У меня есть пользовательская таблица, структурированная так:

  • id MEDIUMINT (7),
  • имя пользователя VARCHAR (15)

Было бы технически быстрее, если бы я изменил это вместо этого:

  • id MEDIUMINT (5),
  • имя пользователя VARCHAR (15)

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

Ответы [ 4 ]

5 голосов
/ 08 июля 2010

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

Вы правы - указанное число цифр не меняет количество байтов, которое столбец MEDIUMINT будет использовать для хранения значения. Фактически, здесь нет скоростных характеристик.

Справка:

3 голосов
/ 08 июля 2010

Аргумент после MEDIUMINT не имеет значения для его хранилища или диапазона значений, которые он поддерживает.Это только подсказка для ширины экрана.В основном это актуально только при использовании опции ZEROFILL.

CREATE TABLE foo (num MEDIUMINT(7) ZEROFILL);
INSERT INTO foo VALUES (1234);
SELECT num FROM foo;

0001234

MEDIUMINT всегда составляет три байта.

1 голос
/ 08 июля 2010

Нет, это не будет быстрее. Число после MEDIUMINT - это только ширина экрана. Он влияет только на способ отображения результатов запроса в некоторых контекстах.

0 голосов
/ 07 сентября 2016

Это просто ширина дисплея. Если вы используете MEDIUMINT (5), он не использует маленький ресурс, чем просто использование MEDIUMINT. Спасибо за ваш вопрос. У меня такой же вопрос.

Ссылка: 12.2.5 Атрибуты числового типа

Ширина отображения не ограничивает диапазон значений, которые могут быть хранится в столбце. Также это не мешает значениям шире столбца ширина дисплея не отображается правильно. Например, столбец указанный как SMALLINT (3) имеет обычный диапазон SMALLINT от -32768 до 32767, и значения вне диапазона, разрешенного тремя цифрами, отображается полностью, используя более трех цифр.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...