BIT (1) против ENUM («неизвестно», «мужчина», «женщина») в MySQL

0

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

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

[EDIT]

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

  • 3
    Micro-оптимизации. Выберите то, что является более значимым / семантически правильным.
  • 1
    Быстрее с точки зрения производительности что делать? Вставить миллионы строк данных? Запрашиваете для всех пользователей определенного пола? Что-то другое?
Показать ещё 2 комментария
Теги:
optimization
performance
bit
enums

2 ответа

4
Лучший ответ

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

1

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

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню