
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
01.11.2015, 12:21:43
|
|||
|---|---|---|---|
затраты на not null |
|||
|
#18+
У нас исторически так сложилось, что все поля всегда объявляются как not null А может ли мне кто-нибудь на пальцах объяснить теряем ли мы что-нибудь от неиспользования null полей Может есть какое-то скрытое преимущество в использовании полей, которые объявлены без not null? Может они не участвуют в переборах и поэтому сильно быстрее работают?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.11.2015, 12:50:12
|
|||
|---|---|---|---|
затраты на not null |
|||
|
#18+
Странный вопрос. Статус поля NULL/NOT NULL должен определяться семантикой данных в этом поле. Ряд различий, конечно же, есть. Например, для NULL-полей в записи дополнительно хранятся биты, указывающие, что в конкретном поле хранится NULL. Насколько я помню, эти биты плотно пакуются в байты. Т.е. для восьми полей понадобится один байт, для девяти - уже два. Другой пример - COUNT(fieldname) может быть (а может и не быть) оптимизирован в COUNT(*), если поле NOT NULL. И, очевидно, не может, если поле NULL. Впрочем, я не в курсе, реализована ли конкретно в MySQL такая оптимизация. Но это все мелочи, и вряд ли может быть причиной выбора статуса поля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.11.2015, 12:52:07
|
|||
|---|---|---|---|
затраты на not null |
|||
|
#18+
LumixУ нас исторически так сложилось, что все поля всегда объявляются как not nullВ каком-то смысле это вам повезло. В некоторых других СУБД пустые строки являются NULL и, соответственно, строковые поля нельзя огульно назначать NOT NULL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.11.2015, 15:59:45
|
|||
|---|---|---|---|
затраты на not null |
|||
|
#18+
miksoftВ некотор ых друг их СУБД пустые строки являются NULLэто в каких же? ну, кроме той, о которой и так все слышали ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.11.2015, 19:13:17
|
|||
|---|---|---|---|
затраты на not null |
|||
|
#18+
Если честно, то я пока не могу придумать хотя бы гипотетически реальный пример, где бы был смысл юзать null поля. Из всей моей практики я встречал только один случай реального осмысленного использования null - и это используется не в таблицах, а в левых джоинах, чтобы инвертировать подмножество относительно заданного условия. А вот когда был бы смысл задавать null на уровне поля таблицы.... я умом понимаю, что null - это как бы смысл такой, что переменная не задана, то есть типа undefined, not set, но на практике все это выеденного яйца не стоит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.11.2015, 19:55:20
|
|||
|---|---|---|---|
затраты на not null |
|||
|
#18+
Lumixне могу придумать хотя бы гипотетически реальный пример, где бы был смысл юзать null поляНу у тебя просто фантазия неразвита.... Например, учёт... ну, скажем, компьютеров. Поле Whom содержит ID сотрудника, которому системник поставлен, или ID сотрудника, который его в данный момент починяет/чистит/протчая. Если в поле Null - системник валяется на складе и ждёт нового "хозяина"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.11.2015, 19:57:23
|
|||
|---|---|---|---|
затраты на not null |
|||
|
#18+
Lumixя умом понимаю, что null - это как бы смысл такой, что переменная не задана, то есть типа undefined, not setОшибочное мнение. Null эквивалентно "хрен знает". То есть значение есть, но оно неизвестно, и нет способа его узнать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.11.2015, 20:22:26
|
|||
|---|---|---|---|
|
|||
затраты на not null |
|||
|
#18+
Lumix, пример = родительская - дочерняя таблица не удаляем по CASCADE, выставляем в NULL, запись становится "ничья" http://dev.mysql.com/doc/refman/5.7/en/create-table-foreign-keys.html SET NULL: Delete or update the row from the parent table, and set the foreign key column or columns in the child table to NULL. Both ON DELETE SET NULL and ON UPDATE SET NULL clauses are supported. If you specify a SET NULL action, make sure that you have not declared the columns in the child table as NOT NULL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.11.2015, 21:08:45
|
|||
|---|---|---|---|
затраты на not null |
|||
|
#18+
Alex_Ustinov, ну, это... короче, мы форины тоже не юзаем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.11.2015, 01:27:57
|
|||
|---|---|---|---|
затраты на not null |
|||
|
#18+
tanglirmiksoftВ некотор ых друг их СУБД пустые строки являются NULLэто в каких же? ну, кроме той, о которой и так все слышали )Это не множественное число, это неопределенное число. Просто в русском языке нет такой конструкции. Но, да, достоверно я знаю только про одну такую СУБД. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=47&tablet=1&tid=1832555]: |
0ms |
get settings: |
11ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
63ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 259ms |
| total: | 406ms |

| 0 / 0 |
