Eu chamaria a coluna "gênero".
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
O tipo de dados BIT pode ser descartado porque suporta apenas dois sexos possíveis, o que é inadequado. Enquanto o INT suporta mais de duas opções, são necessários 4 bytes - o desempenho será melhor com um tipo de dados menor / mais estreito.
CHAR(1)
tem vantagem sobre o TinyINT - ambos têm o mesmo número de bytes, mas CHAR fornece um número mais restrito de valores. O uso CHAR(1)
tornaria o uso de "m", "f" etc. chaves naturais, versus o uso de dados numéricos que são chamados de chaves substitutas / artificiais. CHAR(1)
também é suportado em qualquer banco de dados, caso seja necessário portar.
Conclusão
Eu usaria a opção 2: CHAR (1).
Termo aditivo
Um índice na coluna de gênero provavelmente não ajudaria porque não há valor em um índice em uma coluna de baixa cardinalidade. Ou seja, não há variedade suficiente nos valores para o índice fornecer qualquer valor.