Должны ли столбцы MySQL всегда иметь значения по умолчанию? - PullRequest
3 голосов
/ 04 ноября 2011

Рекомендуется ли всегда иметь значения по умолчанию для столбцов MySQL?
Улучшает ли это производительность?
Я установил для своих столбцов значение NOT NULL, но не указал значение по умолчанию.
Этоплохая практика?

Ответы [ 4 ]

4 голосов
/ 04 ноября 2011

Лучше ли всегда иметь значения по умолчанию для столбцов mysql?

NO

Это действительно зависит.
Если вы хотите убедиться, что вводятся разумные данные, вам следует , а не установить значение по умолчанию для столбца not null.
Устанавливайте значения по умолчанию только для столбцов с разумным значением по умолчанию.
Если вы можете сойти с null, просто разрешите null.

Улучшает ли это производительность?

Это замедляет вставки очень немного .
Но пусть это ускорит ваш выбор, потому что вам не нужно проверять на ноль.
Конечно, БД тратит немного времени на установку значений по умолчанию.
Если вы не вставляете объемно, очень маловероятно, что вы заметите какую-либо задержку.

2 голосов
/ 12 января 2017

Производительность

  1. Вставки Теоретически, должно быть быстрее , чтобы использовать значения по умолчанию вместо отправки всех значений. На самом деле разница в производительности настолько мала, что вы не можете ее измерить.

  2. В общем : использование NOT NULL быстрее , чем работа со значениями NULL. Специально индексные структуры работают быстрее, если они не должны обрабатывать нулевые значения.

  3. Если вы используете NOT NULL , используйте по умолчанию значение

Лучшая практика

В реальном мире вы должны делать то, что хотите иметь в качестве результата.

  • Используйте значения NULL, если вы хотите сохранить информацию "Я не знаю действительного значения"
  • Используйте значение DEFAULT, если вам все равно, знаете ли вы реальное значение, но хотите убедиться, что присутствует хотя бы значение по умолчанию.

  • Если вы используете NOT NULL, всегда используйте DEFAULT.

Примеры

  • День рождения: Используйте значения NULL для тех пользователей, вы не знаете день рождения.

  • isDisabled: Не использовать NULL , вместо этого установите значение по умолчанию 0; поэтому, если ничего не установлено, пользователь не отключается. Вы решаете, поэтому вам не нужно NULL.

0 голосов
/ 04 ноября 2011

Нет! Значения по умолчанию используются, когда они вам нужны, но не влияют на производительность!

0 голосов
/ 04 ноября 2011

Если вы указали его как NOT NULL, тогда да, у вас должно быть значение по умолчанию, если вы не контролируете, какие данные вводятся.NOT NULL подразумевает, что всегда будет значение, поэтому рекомендуется использовать значение по умолчанию.Все ли ваши столбцы должны быть НЕ NULL?

...