Índice concatenado de MySQL al unir varias tablas

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?

preguntado el 09 de marzo de 12 a las 16:03

Has intentado EXPLAIN ¿la consulta? -

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 -

0 Respuestas

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.