He leído que las columnas que se eligen para los índices deben discriminar bien entre las filas, es decir, las columnas de índice no deben contener una gran cantidad de filas con el mismo valor. Esto sugeriría que los booleanos o una enumeración como el género serían una mala elección para un índice.¿Utiliza columnas booleanas o enumeradas en los índices?
Pero digo que quiero encontrar usuarios por sexo y en mi base de datos particular, solo el 2% de los usuarios son mujeres, entonces en ese caso parece que la columna de género sería un índice útil para obtener las usuarias, pero no al obtener todos los usuarios masculinos.
¿En general, sería una buena idea poner un índice en dicha columna?
Su respuesta es buena pero considere, en lugar de género, estamos almacenando las principales ciudades o estados, que son solo 100 en número, distribuidas entre 1 millón de usuarios, por lo que probablemente 10 mil usuarios tendrán el mismo valor, y si estamos buscando solo para una ciudad en particular, entonces no quiero que DB itere 1 millón de filas, y el índice b + normal será muy malo para este propósito, entonces, ¿cuál será su sugerencia en este caso? –
@Akash: vea las otras dos respuestas: un índice de mapa de bits puede ser apropiado, pero depende de cuáles sean sus consultas. ¿Está buscando devolver todos los 10,000 usuarios para una sola ciudad? ¿O estás haciendo algunas estadísticas sobre los usuarios de esa ciry? O ... –
gracias por su respuesta, estoy buscando la búsqueda en una sola ciudad, pero el problema que tengo es que el servidor SQL no tiene índice de mapa de bits, no estoy seguro de que no haya visto nuevas características en la última SQL, espero que esté allí. –