Эффекты производительности от использования полей с поддержкой NULL в MySQL - PullRequest
1 голос
/ 12 января 2011

Иногда отсутствующее значение может быть представлено (без потери функции) без обращения к столбцу, который может иметь значение NULL, например:

  • Ноль целое в столбце, который ссылается на идентификатор строки AUTO_INCREMENT другоготаблица
  • Неверное значение даты (0000-00-00)
  • Нулевое значение метки времени
  • Пустая строка

С другой стороны, согласноРеляционная модель Теда Кодда, NULL, является маркером отсутствия данных.Я всегда чувствую себя лучше, когда делаю что-то «правильным образом», и MySQL поддерживает это и связанную с ним 3-значную логику, так почему бы и нет?

Несколько лет назад я проснулся с проблемой производительности и обнаружил, что могу решить ее.это просто добавив NOT NULL к определению столбца.Столбец был проиндексирован, но я не помню других деталей.С тех пор я избегал NULL-способных столбцов, когда есть альтернатива.

Но меня всегда беспокоило, что я не совсем понимаю эффекты производительности, связанные с разрешением NULL в таблице MySQL.Кто-нибудь может помочь?

1 Ответ

0 голосов
/ 12 января 2011

Сохраняет 1 бит на столбец. http://dev.mysql.com/doc/refman/5.0/en/data-size.html Не кажется много, но на миллионах строк это начинает меняться

...