Llamaría a la columna "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
El tipo de datos BIT se puede descartar porque solo admite dos géneros posibles, lo cual es inadecuado. Si bien INT admite más de dos opciones, requiere 4 bytes: el rendimiento será mejor con un tipo de datos más pequeño / más estrecho.
CHAR(1)
tiene la ventaja sobre TinyINT : ambos toman el mismo número de bytes, pero CHAR proporciona un número más estrecho de valores. El uso CHAR(1)
haría que usar "m", "f", etc., las teclas naturales, en comparación con el uso de datos numéricos que se denominan claves sustitutas / artificiales. CHAR(1)
también es compatible con cualquier base de datos, en caso de que sea necesario portar.
Conclusión
Usaría la Opción 2: CHAR (1).
Apéndice
Un índice en la columna de género probablemente no ayudaría porque no hay valor en un índice en una columna de baja cardinalidad. Es decir, no hay suficiente variedad en los valores para que el índice proporcione ningún valor.