powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / затраты на not null
10 сообщений из 10, страница 1 из 1
затраты на not null
    #39092030
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У нас исторически так сложилось, что все поля всегда объявляются как not null
А может ли мне кто-нибудь на пальцах объяснить теряем ли мы что-нибудь от неиспользования null полей
Может есть какое-то скрытое преимущество в использовании полей, которые объявлены без not null? Может они не участвуют в переборах и поэтому сильно быстрее работают??
...
Рейтинг: 0 / 0
затраты на not null
    #39092041
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странный вопрос. Статус поля NULL/NOT NULL должен определяться семантикой данных в этом поле.

Ряд различий, конечно же, есть.
Например, для NULL-полей в записи дополнительно хранятся биты, указывающие, что в конкретном поле хранится NULL. Насколько я помню, эти биты плотно пакуются в байты. Т.е. для восьми полей понадобится один байт, для девяти - уже два.
Другой пример - COUNT(fieldname) может быть (а может и не быть) оптимизирован в COUNT(*), если поле NOT NULL. И, очевидно, не может, если поле NULL. Впрочем, я не в курсе, реализована ли конкретно в MySQL такая оптимизация.
Но это все мелочи, и вряд ли может быть причиной выбора статуса поля.
...
Рейтинг: 0 / 0
затраты на not null
    #39092043
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LumixУ нас исторически так сложилось, что все поля всегда объявляются как not nullВ каком-то смысле это вам повезло. В некоторых других СУБД пустые строки являются NULL и, соответственно, строковые поля нельзя огульно назначать NOT NULL.
...
Рейтинг: 0 / 0
затраты на not null
    #39092119
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftВ некотор ых друг их СУБД пустые строки являются NULLэто в каких же? ну, кроме той, о которой и так все слышали )
...
Рейтинг: 0 / 0
затраты на not null
    #39092205
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если честно, то я пока не могу придумать хотя бы гипотетически реальный пример, где бы был смысл юзать null поля. Из всей моей практики я встречал только один случай реального осмысленного использования null - и это используется не в таблицах, а в левых джоинах, чтобы инвертировать подмножество относительно заданного условия.

А вот когда был бы смысл задавать null на уровне поля таблицы.... я умом понимаю, что null - это как бы смысл такой, что переменная не задана, то есть типа undefined, not set, но на практике все это выеденного яйца не стоит...
...
Рейтинг: 0 / 0
затраты на not null
    #39092236
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lumixне могу придумать хотя бы гипотетически реальный пример, где бы был смысл юзать null поляНу у тебя просто фантазия неразвита....
Например, учёт... ну, скажем, компьютеров. Поле Whom содержит ID сотрудника, которому системник поставлен, или ID сотрудника, который его в данный момент починяет/чистит/протчая. Если в поле Null - системник валяется на складе и ждёт нового "хозяина"...
...
Рейтинг: 0 / 0
затраты на not null
    #39092238
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lumixя умом понимаю, что null - это как бы смысл такой, что переменная не задана, то есть типа undefined, not setОшибочное мнение. Null эквивалентно "хрен знает". То есть значение есть, но оно неизвестно, и нет способа его узнать.
...
Рейтинг: 0 / 0
затраты на not null
    #39092248
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
...
Рейтинг: 0 / 0
затраты на not null
    #39092265
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov, ну, это... короче, мы форины тоже не юзаем.
...
Рейтинг: 0 / 0
затраты на not null
    #39092307
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirmiksoftВ некотор ых друг их СУБД пустые строки являются NULLэто в каких же? ну, кроме той, о которой и так все слышали )Это не множественное число, это неопределенное число. Просто в русском языке нет такой конструкции.
Но, да, достоверно я знаю только про одну такую СУБД. :)
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / затраты на not null
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]