Ver Mensaje Individual
  #11 (permalink)  
Antiguo 27/02/2015, 14:01
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: manera correcta de crear un indice en tabla

En principio, si en el WHERE se usan ambos campos del índice, es razonable que acceda al índice. La duda es cuáles son los resultados en cuanto a lectura de registros.

Empecemos con esto:
1) Dinos qué cambia de la performance cuando quitas la última condición, la de "caducado":
Código MySQL:
Ver original
  1. FROM tabla
  2. WHERE nombre='andres'
  3.     AND descripcion='estudiante'
  4.     AND correcto=0
  5.     -- AND caducado > CURRENT_TIMESTAMP() # Desactivamos esta condición
  6. ;
El objetivo de esta prueba es verificar si el ">" genera un overhead mayor, ya que cualquier condición comparativa de >, <, >=, o <=, suele tener menor performance que la de un "=".

2) Posteanos el resultado completo del EXPLAIN. Así podremos ver cuál es el resultado de la lectura de registros. Eso nos puede indicar con mas claridad lo que ese indice aporta.

3) Para una mayor prueba, quita el índice de doble columna y crea dos indices, uno por cada una de ellas. Luego vuelve a probar.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)