Я ценю семантическое значение значения NULL в таблице базы данных, отличное от ложного и пустой строки ''. Тем не менее, я часто читал о проблемах с производительностью, когда поля имеют значение NULL, и было рекомендовано использовать пустую строку в случаях, когда NULL на самом деле семантически корректен.
Какие обстоятельства подходят для использования полей с нулевым значением и значений NULL? Каковы компромиссы? Разве разумно просто избегать использования NULL вообще и просто использовать пустые строки, false или 0, чтобы указать отсутствие значения?
UPDATE
ОК. Я понимаю семантическую разницу между "и" NULL ", а также обстоятельства (агностики производительности), в которых значение NULL является подходящим значением поля. Однако позвольте мне рассказать о намеченной проблеме производительности. Это от превосходной" высокопроизводительной MySQL" Шварца, Zeitsev et al. http://www.borders.co.uk/book/high-performance-mysql-optimization-backups-replication-and-more/857673/:
Для MySQL гораздо труднее оптимизировать запросы, которые относятся к nullable coumns, потому что они делают индексы, индексы статистика и сравнение значений больше сложно. В столбце с нулевым значением используется больше места для хранения и требует специальная обработка внутри MySQL. когда индексируемый столбец с нулевым значением, он требуется дополнительный байт на запись и может даже привести к индексу фиксированного размера (например, индекс одного целого числа столбец) для преобразования в переменный размер в MyISAM.
Подробнее здесь: Предварительный просмотр книг Google
Это, возможно, окончательный ответ - я просто искал второе мнение и опыт на первой линии.