BIT (1) против ENUM («неизвестно», «мужчина», «женщина») в MySQL - PullRequest
0 голосов
/ 24 августа 2010

С точки зрения производительности, что будет быстрее, используйте BIT(1) NULL (ноль = неизвестно, 0 = мужчина, 1 = женщина) или ENUM('unknown', 'male', 'female') NOT NULL DEFAULT 'unknown' в MySQL MyISAM ?

Или это считается микро-оптимизация ?

[РЕДАКТИРОВАТЬ]

Я думаю, что я собираюсь использовать ENUM('male', 'female') DEFAULT NULL

Ответы [ 2 ]

4 голосов
/ 24 августа 2010

Да, это микрооптимизация. Производительность будет зависеть от других факторов, и в любом случае пустые поля занимают больше места (для нулевого флага), поэтому используйте осмысленное перечисление.

1 голос
/ 24 августа 2010

Я рассматриваю эту микрооптимизацию.

Я бы выбрал опцию ENUM, потому что значение всех значений полностью понятно без чтения документации.Параметр bit немного расплывчатый.

Что касается производительности, я помню, что NULL обычно плох, но сейчас не могу найти ссылки.

...