У меня проблема с довольно медленным запросом MYSQL. Я создаю меню AJAX с PHP, и производительность действительно является проблемой. Запрос занимает около 0,5 секунды, и я не знаю, как его оптимизировать.Как оптимизировать мой SQL-запрос?
SQL-запрос:
SELECT M.nom_mat, M.id_mat, M.rang, SC.nom_sous_cat, SC.id_sous_cat, C.nom_cat,M.id_cat
FROM besson_mat M
LEFT OUTER JOIN besson_lien_mat LM ON M.id_mat = LM.id_mat
LEFT OUTER JOIN besson_sous_cat SC ON SC.id_sous_cat = LM.id_sous_cat
LEFT OUTER JOIN besson_cat C ON C.id_cat = SC.id_cat
WHERE M.en_ligne = '1'
AND M.lg = 'fr'
AND (
M.id_cat = '28'
OR M.id_cat = '29'
)
OR (
SC.id_sous_cat = '37'
OR SC.id_sous_cat = '42'
OR SC.id_sous_cat = '43'
OR SC.id_sous_cat = '44'
)
ORDER BY C.id_cat ASC , SC.id_sous_cat ASC , M.rang ASC
Спасибо за вашу помощь, я буду обновлять свой вопрос, если вам нужно больше информации.
FINAL EDIT
Лишние скобки в предложении WHERE были причиной этой проблемы. Теперь мой запрос занимает около 0.0718 секунд, и вам большое спасибо.
Кроме того, в этом случае вы могли бы иметь проблема синтаксиса. Вы уверены, что не хотите иметь дополнительный набор круглых скобок вокруг последних двух частей предложения where? –
Спасибо, дополнительные скобки были причиной моей проблемы. Теперь мой запрос быстро вспыхивает. – rcampistron