SELECT products.*
FROM products
LEFT JOIN product_category
ON products.id_product = product_category.id_produs
LEFT JOIN categories
ON product_category.id_category = categories.id_category
INNER JOIN options
ON products.id_product = options.id_product
WHERE categories.id_category = '472'
AND product_category.id_category = categories.id_category
LIMIT 0, 20
您好,我正在編程競賽的電子商務網站上工作,我在類別頁面上出現了一些問題,其中列出了產品。在電子商務網站上緩慢查詢(選擇產品)
在MySQL中有4個表:產品,類別,product_category(包含類別和產品的關係)和選項。選項表包含您可以選擇購買的產品的各種屬性(如重量,高度,顏色)。我需要在類別頁面上調用它們,因爲有產品過濾器,當我選擇顏色:紅色時,它將顯示具有屬性顏色:紅色的所有產品。
如果我在產品表中有10 000行,並且每個產品有5個選項,那麼選項表將會有50 000行,問題是查詢速度會很慢,並且會花費30秒以上顯示產品。 我確定問題出在查詢上,但我不知道該怎麼做。我應該在查詢中編寫什麼內容才能在5秒內獲得頁面上的產品?
您能否包含此查詢的執行計劃? – ajreal
您的id_category/id_product列上是否有指紋? – Oliver
發佈查詢的['EXPLAIN'](http://dev.mysql.com/doc/refman/5.0/en/using-explain.html) –