我正在使用此查询来获取产品。产品表有 302,716 行。执行大约 2-3 分钟花费了太多时间。但是当我删除 order by 时,它花费的时间更少。
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
最佳答案
您可以通过为 select 和 where 子句中的列创建索引来提高查询的速度/性能(这会减慢插入、删除和更新语句的速度......)
关于php - mysql中按慢查询排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22093214/