Índice concatenado de MySQL al unir varias tablas
Frecuentes
Visto 217 veces
0
Si tengo unas mesas como...
tblResource
-----------
id
r_name
tblCategory
--------
id
c_name
tblTag
-------
id
t_name
tblResCatTag
------------
r_id
c_id
t_id
He leído que solo se leen índices individuales en las tablas, y el orden de los valores es importante, por lo que si indexo tblResCatTag como...
ADD INDEX (rid, cid, t_id);
y tiene una consulta como...
SELECT r.r_name, c.c_name, t.t_name
FROM tblResource r
LEFT OUTER JOIN tblResCatTag rtc ON r.id = rtc.r_id
LEFT OUTER JOIN tblCategory c ON rtc.c_id = c.id
LEFT OUTER JOIN tblTag t ON rtc.t_id = t.id
¿Se usará el índice en las últimas dos uniones, o se ignorará ya que rid es el primer elemento del índice?
0 Respuestas
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas mysql indexing or haz tu propia pregunta.
Has intentado
EXPLAIN
¿la consulta? - ypercubeᵀᴹIntente utilizar la explicación o mirar el plan de ejecución. He creado un pequeño violín para ti aquí que te permitirá ver las diferencias: sqlfiddle.com/#!2/6b543/1 - RumpRanger