Я б назвав стовпець "гендерним".
Data Type Bytes Taken Number/Range of Values
------------------------------------------------
TinyINT 1 255 (zero to 255)
INT 4 - 2,147,483,648 to 2,147,483,647
BIT 1 (2 if 9+ columns) 2 (0 and 1)
CHAR(1) 1 26 if case insensitive, 52 otherwise
BIT тип даних може бути виключена , оскільки він підтримує тільки два можливих підлог , який є недостатнім. Хоча INT підтримує більше двох варіантів, він займає 4 байти - продуктивність буде кращою при меншому / більш вузькому типі даних.
CHAR(1)
має край над TinyINT - обидва беруть однакову кількість байтів, але CHAR надає більш вузьку кількість значень. Використання CHAR(1)
може використовувати природні ключі "m", "f" тощо, порівняно з використанням числових даних, які називаються сурогатними / штучними ключами. CHAR(1)
також підтримується в будь-якій базі даних, якщо є потреба в порту.
Висновок
Я б застосував варіант 2: CHAR (1).
Додаток
Індекс на гендерній колонці, ймовірно, не допоможе, оскільки в індексі стовпця з низькою кардинальністю немає значення. Тобто, не вистачає різноманітності у значеннях для індексу, щоб забезпечити будь-яке значення.