SQL SQL查询速度慢

时间:2011-11-19 21:02:09

标签: mysql sql database

我有一个查询(下面),当客户有很多类别时,它会永远运行。我需要以某种方式加速它,我无法弄清楚如何。非常感谢任何帮助。

 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

此查询的结果是客户可以下载的文件 - 问题似乎是类别。

3 个答案:

答案 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查询计划的内容。

并且外部机会重建索引,看看是否有所作为。