Saya akan menyebut kolom "gender".
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
The BIT tipe data dapat dikesampingkan karena hanya mendukung dua jenis kelamin mungkin yang tidak memadai. Sementara INT mendukung lebih dari dua opsi, dibutuhkan 4 byte - kinerja akan lebih baik dengan tipe data yang lebih kecil / lebih sempit.
CHAR(1)
memiliki keunggulan atas TinyINT - keduanya mengambil jumlah byte yang sama, tetapi CHAR menyediakan jumlah nilai yang lebih sempit. Menggunakan CHAR(1)
akan membuat menggunakan "m", "f", dll kunci alam, vs penggunaan data numerik yang disebut sebagai kunci pengganti / buatan. CHAR(1)
juga didukung pada basis data apa pun, jika perlu ada port.
Kesimpulan
Saya akan menggunakan Opsi 2: CHAR (1).
Tambahan
Indeks pada kolom gender kemungkinan tidak akan membantu karena tidak ada nilai dalam indeks pada kolom kardinalitas rendah. Artinya, tidak ada cukup variasi dalam nilai untuk indeks untuk memberikan nilai apa pun.