我有一个查询(下面),当客户有很多类别时,它会永远运行。我需要以某种方式加速它,我无法弄清楚如何。非常感谢任何帮助。
SELECT pictures1.*, GROUP_CONCAT(cats_master.categoryName SEPARATOR ';') AS categoryNames
FROM pictures1
LEFT JOIN cats_contacts ON pictures1.id =cats_contacts.contact_id
LEFT JOIN cats_master ON cats_contacts.category_id = cats_master.id
WHERE pictures1.customer_id = (customer id goes here)
GROUP BY pictures1.id
ORDER BY pictures1.l_name ASC
此查询的结果是客户可以下载的文件 - 问题似乎是类别。
答案 0 :(得分:3)
检查解释计划并根据需要添加索引。
答案 1 :(得分:1)
拥有以下索引将大大加快查询速度:
id, l_name, customer_id: pictures table
contact_id: cats_contacts table
id, category_id: cats_master table
答案 2 :(得分:0)
我会尝试所有id的索引,+ l_name用于最终排序。在那之后,这是一个非常坚韧不拔的时刻。例如,你所有的'join'id都是相同的类型和大小。
PS查询计划的内容。
并且外部机会重建索引,看看是否有所作为。