Sütuna "cinsiyet" adını verirdim.
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 sadece yetersizdir iki olası cinsiyetler destekler çünkü veri tipi ekarte edilebilir. İken INT destekleri ikiden fazla seçenek, bu 4 bayt alır - performans daha küçük / daha dar veri türüyle iyi olacaktır.
CHAR(1) üstünlüğe sahip TinyINT - her ikisi de aynı sayıda bayt alır, ancak CHAR daha dar sayıda değer sağlar. Kullanmak CHAR(1)"m", "f", vb. Doğal anahtarların yerine vekil / yapay anahtarlar olarak adlandırılan sayısal verilerin kullanılmasını sağlar. CHAR(1)ayrıca herhangi bir veri tabanında da desteklenir, eğer bir porta ihtiyaç duyulursa.
Sonuç
Seçenek 2'yi kullanırdım: CHAR (1).
ek
Cinsiyet sütun üzerinde bir dizin muhtemelen olurdu değil düşük kardinalite sütun üzerinde bir dizin içinde hiçbir değeri yok, çünkü yardımcı olur. Yani, dizinin herhangi bir değer sağlaması için değerlerde yeterli çeşitlilik yok.