09/10/2012, 04:35
|
| Moderador criollo | | Fecha de Ingreso: noviembre-2007 Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años Puntos: 2658 | |
Respuesta: Empleo de varios índices en una tabla Creo que no tienes claro el uso de los indices en un DBMS, por lo que te recomendaría leer más profundamente el tema.
Los indices no se usan para ordenar un resultado, sino para optimizar las consultas que se hacen. Para obtener los datos. Allí es donde está su efecto fundamental.
El ordenamiento es controlado especialmente por la cláusula ORDER BY, y su algoritmo hasta lo que conozco, omite los indices si los mismos no han sido usados por las cláusulas SELECT/FROM/WHERE en algún momento, ya que eso implicaría que su clave no fue parte del cálculo.
Lo que seguro que no puede hacerse, es indicarle al ORDER BY que use un determinado índice, porque no hay relación directa entre esa cláusula y el uso de los mismos.
En esencia, si bien se puede forzar a usar un indice (con la clausula FORCE INDEX en el FROM), eso no es lo habitual. Lo normal es que sea el mismo MySQL el que decida qué indices y en qué circunstancias usarlo.
¿Se entiende medianamente la diferencia entre lo que quieres y lo que realmente es?
Necesitas leer el tema para comprenderlo mejor, por lo que te sugiero leer el manual de referencia, donde hay un capítulo dedicado precisamente a cómo usa MySQL los índices.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque)
Última edición por gnzsoloyo; 09/10/2012 a las 11:16 |