MySQL - использование 'Разрешить NULL' - PullRequest
1 голос
/ 06 мая 2011

Делает ли использование NULL для заполнения пустых ячеек в моих таблицах поиск / запросы быстрее?

Например, это

90  2   65  2011-04-08  NULL    NULL    
134 2   64  2011-04-13  NULL    07:00:00    
135 2   64  2011-04-13  NULL    07:00:00    
136 2   64  2011-04-13  NULL    22:45:00    
137 2   64  2011-04-14  NULL    19:30:00

лучше, чем

90  2   65  2011-04-08          
134 2   64  2011-04-13           07:00:00   
135 2   64  2011-04-13           07:00:00   
136 2   64  2011-04-13           22:45:00   
137 2   64  2011-04-14           19:30:00

Если бы кто-нибудь мог сказать мне какое-либо конкретное преимущество использования NULL (производительность, хорошая практика и т. Д.), Это было бы очень признательно.

1 Ответ

4 голосов
/ 06 мая 2011

Существует семантическая разница.

  • NULL означает «значение неизвестно или не применимо».

Если это описывает данные для этого столбца, используйте их.

  • Пустая строка означает «значение известно, и это« ничто »».

Если это описывает данные для этого столбца, то используйте их. Конечно, это относится только к строкам; необычно иметь такой сценарий для других типов данных, но обычно для числовых полей здесь уместно значение 0.

Короче говоря, в основном это зависит от того, что ваши поля означают . Беспокойство о производительности и профилировании позже, когда ты знаешь, какие данные ты представляешь. (NULL против "" никогда не станет вашим узким местом.)

...