Ver Mensaje Individual
  #8 (permalink)  
Antiguo 10/09/2012, 13:19
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: como puedo optimizar una tabla con mucho registros

El hecho de que tenga información parcialmente repetitiva no es óbice para que la tabla tenga PK. De hecho toda tabla debe tener obligatoriamente una PK, la uses o no en las consultas. supongo que eso lo tienes claro.
Tu problema es que la búsqueda la estás haciendo por un campo con muy baja selectividad, por tanto a MySQL evalúa que si la peor entrada del índice tiene alrededor del 50% de la longitud de la tabla, el índice se omite porque le llevaría menos tiempo hacer un FULL TABLE SCAN, que acceder al índice y después a la tabla.
En definitiva, para poder mejorar la performance no es suficiente usar ese campo como parámetro de indexación. Necesitas alguno más, que permita reducir la cantidad de entradas del índice y aumentar la selectividad.
Sin modificar la forma de indexación, y la cantidad de parámetros del WHERE, no es posible optimizar la consulta, tal y como la planteaste.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)