在mysql中通过慢查询排序

时间:2014-02-28 10:58:52

标签: php mysql join

我正在使用此查询来获取产品。产品表有302,716行。执行大约2-3分钟需要花费太多时间。但是当我删除订单时花费的时间更少。

SELECT DISTINCT 
  product.ProductID,
  company.CompanyName 
FROM
  product 
  INNER JOIN company 
    ON company.CompanyID = product.CompanyID 
  LEFT JOIN company_csv_data 
    ON company.CompanyID = company_csv_data.CompanyID 
  LEFT JOIN productcategory 
    ON product.ProductID = productcategory.ProductID 
  LEFT JOIN category 
    ON category.CategoryID = productcategory.CategoryID 
  LEFT JOIN supplier 
    ON product.supplier = supplier.id 
  LEFT JOIN template_vouchers tm 
    ON product.ProductID = tm.voucher_id 
WHERE company.turn_on = 1 
  AND product.ProductEndDate >= CURRENT_DATE 
  AND turn_off = 1 
GROUP BY product.ProductID 
ORDER BY clicks DESC,
  product.CodeOpen DESC,
  product.Online,
  product.EntryDate DESC 
LIMIT 0, 15 

1 个答案:

答案 0 :(得分:1)

您可以通过为select和where子句中的列创建索引来提高查询的速度/性能(这会降低插入,删除和更新语句的速度。)