0
我有五个表join
。该查询需要超过5秒的时间才能执行。我有如下所示的四个查询,所以我的PHP页面需要超过30秒才能加载。我需要提高性能。你可以帮我吗?我奋斗了一个星期。我添加了索引。如何优化mysql查询性能
我的查询
SELECT f.SortField , f.id
FROM tbl_store_brands AS sb
INNER JOIN tbl_products AS p
ON sb.categoryID = p.pkCategory AND sb.brandID = p.pkBrand
INNER JOIN ModelPrice AS mp ON (p.id = mp.product_id)
INNER JOIN Brand_Data AS bd ON bd.pkID = p.pkBrand+0
INNER JOIN tbl_filters AS f
ON (
p.pkID = f.pkID and
p.pkCategory = f.Category AND
p.cgSlug = 'bathroom-fixtures'
)
WHERE mp.Available = 1
GROUP BY f.SortField
ORDER BY if (
f.SortField = 'CAPACITY' OR
f.SortField = 'WIDTH' OR
f.SortField = 'HEIGHT' OR
f.SortField = 'DEPTH', 4, f.ValueDisplayOrder
) ASC
我的查询说明
你不只是*“添加索引” *神奇地解决问题。您需要在适当的地方添加特定的索引。你有什么指数?我要做的第一件事是失去'ORDER BY'子句。另外,为什么“GROUP BY”没有任何聚合? – Phil 2014-09-03 09:19:18
您可以使用PHP ORM,非常容易使用。如果你想做一些像'INNER JOIN'或其他的东西,只需要像这样调用你的模型(例子)。 'TblStoreBrands :: with('TblProduct') - > get();' – 2014-09-03 09:32:39
@ArryanggaAlievPratamaputra这有什么关系? – Cylindric 2014-09-03 09:51:03