【发布时间】:2010-09-10 15:24:19
【问题描述】:
我遇到了一个非常慢的 MYSQL 查询的问题。我正在用 PHP 构建一个 AJAX 菜单,性能确实是一个问题。查询大约需要 0.5 秒才能完成,我不知道如何优化它。
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
感谢您的帮助,如果您需要更多详细信息,我会更新我的问题。
最终编辑
WHERE 子句中多余的括号是问题的原因。现在我的查询大约需要 0.0718 秒才能完成,非常感谢。
【问题讨论】:
标签: php mysql query-optimization