Пустое поле хранение и выборка?

В документации пишут что по возможности надо делать поле NOT NULL т.к. это сэкономит по байту на строчку. Вопрос: какой вариант пустого поля (нет значения) занимает меньше места в БД и быстрее ищется?
NULL, 0, '' (пустая строка) или что-то ещё?
  • Вопрос задан
  • 1015 просмотров
Пригласить эксперта
Ответы на вопрос 2
0 - это не вариант пустого поля, если вы храните количество чего-либо. Также и с пустой строкой - это не всегда эквивалент NULL. Нулл это вообще даже не пустое, а "неизвестное" значение - важно понимать разницу.

Как по мне, нет более извращенного способа поставить себе грабли, как экономить место в БД используя/не используя NULL. Это должно целиком определяться предметной областью. Не думаю, что какая-либо СУБД настолько ужасна, что будет тратить на nullable значения в два раза больше места.
Ответ написан
qonand
@qonand
Software Engineer
что касается null в MySQL от него по возможности нужно избавляться (только ж без фанатизма). Нужно понимать что для каждого типа данных нужно использовать свое значение по умолчанию, если тип строка - тогда лучше "", если число - тогда 0 и т.п. Ну и соответственно значение по умолчанию будет занимать столько места сколько занимает сам тип столбца. Подробнее о размерах типов данных можно почитать здесь
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы