2014-02-28 34 views
0

我正在使用此查詢來提取products.the產品表有302,716 rows.it需要太多的時間來執行2-3分鐘左右。但是,當我刪除它的順序需要更少的時間。通過在mysql中緩慢查詢排序

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 
+0

什麼是你的問題? – SebastianH

+0

執行大約3分鐘需要太多時間。 –

+0

你試過索引嗎? –

回答

1

您可以通過在選擇和WHERE子句中爲列創建索引提高了查詢的速度/性能(這將插入放緩,DELETE和UPDATE語句。)

+2

呼吸有助於維持生命。誰支持這個? – fancyPants