我有以下查询。我正在使用mysql数据库
Explain
SELECT
a.ProductID,
a.ProductName,
b.ShelfID,
b.SCode,
c.CompanyID,
c.CompanyName,
d.CategoryName,
ProdCategoryID
FROM tblProduct a
LEFT OUTER JOIN tblShelfComp b
ON a.ProductSID = b.ShelfID
INNER JOIN tblCompany c
ON a.ProductCompId = c.CompId
LEFT OUTER JOIN tclCategory d
ON a.CategoryID = d.CategoryID
ORDER BY a.ProductName
给予o / p
id Select_type table type Possible_keys Key Key_len ref rows Extra
1 SIMPLE a ALL (NULL) (NULL) (NULL) (NULL) 45850 Using where; Using filesort
1 SIMPLE b Eq_ref PRIMARY PRIMARY 34 a. ProductSID 1 (NULL)
1 SIMPLE c Eq_ref PRIMARY PRIMARY 34 a. ProductCompId 1 (NULL)
1 SIMPLE d Eq_ref PRIMARY PRIMARY 34 a. CategoryID 1 (NULL)
此查询需要一段时间才能执行。所以我使用解释知道它是如何运作的。但是我无法确定如何处理这个结果。我需要采取哪些步骤来优化性能?
答案 0 :(得分:1)
如果您不使用" ORDER BY"运行查询需要多长时间?如果这个时间大致相同,则查询没有优化的可能性。 (也许投资更好的硬件/更快的磁盘 - 或调整你的mysql服务器值进行优化?)
如果它快得多,您可以尝试在tblProduct.ProductName上创建索引。但是,如果这有帮助,那就不是了。