Ik zit met de volgende query:
Deze query is rechtstreeks uit de mysql logs getrokken met de vermelding dat deze geen indices gebruikt. Zie hier de EXPLAIN uitvoer:
Ik heb voor zo ver ik weet alles al geprobeerd. Echter verdomd mysql het om deze query m.b.v. een index uit te voeren. Hij blijft de query uitvoeren d.m.v. een filesort en een temporary. Toch zou ik deze query graag met een query uitvoeren.
Ook deze query levert dezelfde problemen op:
En weer de uitvoer van de EXPLAIN:
Als iemand een idee heeft waarom deze queries niet een een index willen werken dan hoor ik het graag. De index licht op de velden in ON conditie bij de betrokken tabellen. De tabellen bevatten allen momenteel slechts 4 tot 6 rijen. Kan het zijn dat mysql daarom de query niet met een index uitvoert?
B.v.d.
code:
1
2
3
4
5
6
| SELECT c.category_name, e.education_name,
CONCAT("S", c.category_id) AS category_url
FROM c_category c
LEFT OUTER JOIN c_education e
ON e.education_id = c.education_id
ORDER BY e.education_name ASC, c.category_name ASC |
Deze query is rechtstreeks uit de mysql logs getrokken met de vermelding dat deze geen indices gebruikt. Zie hier de EXPLAIN uitvoer:
code:
1
2
3
| d select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE c ALL NULL NULL NULL NULL 3 Using temporary; Using filesort 1 SIMPLE e ref get_education get_education 3 elo.c.education_id 1 Using index |
Ik heb voor zo ver ik weet alles al geprobeerd. Echter verdomd mysql het om deze query m.b.v. een index uit te voeren. Hij blijft de query uitvoeren d.m.v. een filesort en een temporary. Toch zou ik deze query graag met een query uitvoeren.
Ook deze query levert dezelfde problemen op:
code:
1
2
3
4
5
6
| SELECT c.course_name, e.education_name,
CONCAT("S", c.course_id) AS course_url
FROM c_course c, c_category c2
LEFT OUTER JOIN c_education e
ON e.education_id = c2.education_id
WHERE c2.category_id = c.category_id |
En weer de uitvoer van de EXPLAIN:
code:
1
2
3
4
| id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE c ALL category_id NULL NULL NULL 2 1 SIMPLE c2 eq_ref PRIMARY PRIMARY 4 elo.c.category_id 1 1 SIMPLE e ref get_education get_education 3 elo.c2.education_id 1 Using index |
Als iemand een idee heeft waarom deze queries niet een een index willen werken dan hoor ik het graag. De index licht op de velden in ON conditie bij de betrokken tabellen. De tabellen bevatten allen momenteel slechts 4 tot 6 rijen. Kan het zijn dat mysql daarom de query niet met een index uitvoert?
B.v.d.