2009-12-03 3 views
9

В чем разница между NULL и Empty String в Mysql?В чем разница между NULL и Empty в mysql

Сколько места на складе займет?

Для примера.

В таблице пользователя

Имя: NULL - Сколько места его взять

телефон: -Как много места его взять

+0

Уже ответил на http://stackoverflow.com/questions/229179/null-in-mysql-performance-storage – Donnie

+0

Не так, как есть – cHeE

ответ

4

Имеются веские основания использовать NULL, но экономия места в хранилище строк не является одной. Если вы хотите, чтобы «place not know» placeholder использовал NULL; если вы просто хотите сохранить пустую строку, которая ведет себя как пустая строка, продолжайте и сохраните пустую строку. Если это столбец VARCHAR (который, вероятно, будет), то он вряд ли займет много места.

20

Лучший способ думать о NULL, что она ядовита.

Любая операция, выполняемая с помощью NULL, будет производить NULL.

NULL + любое число type - null. NULL concat любая строка имеет значение NULL.

пустая строка является строкой с длиной 0.

Примера:

mysql> select concat('hello world', null); 
+-----------------------------+ 
| concat('hello world', null) | 
+-----------------------------+ 
| NULL      | 
+-----------------------------+ 

mysql> select concat('hello world', ''); 
+---------------------------+ 
| concat('hello world', '') | 
+---------------------------+ 
| hello world    | 
+---------------------------+ 

Что касается экономии пространства зависит от типа данных столбца определен.

4

Складское помещение не должно вас беспокоить. Вместо этого вы должны быть заинтересованы в семантике NULL. Скажем, у меня был стакан в моем доме, которого вы никогда раньше не видели в своей жизни. Если я спрошу вас, сколько воды в этом стакане, вы не можете дать верный ответ. Правда в том, что вы не знаете. Теперь, если я достал стакан и показал, что в нем нет воды, ответ, который вы мне дадите, - «нет». NULL - «Я не знаю ответа», а пустая строка «Я знаю, а ответ - пустая строка».

Смежные вопросы