我對產品的表如下指標:(product_t,產品ID,可供出售)。 MySQL手冊說:GROUP BY會減慢查詢
本集團名稱僅構成該指數並沒有其他列的最左邊的前綴列。 http://dev.mysql.com/doc/refman/5.0/en/group-by-optimization.html
當我做下面的查詢
SELECT z.product_t, COUNT(z.productid)
FROM xcart_products z
JOIN xcart_products_lng w ON z.productid = w.productid
AND w.code = 'US'
WHERE z.forsale = 'Y'
group by z.product_t
並因此使用最左邊的索引字段(product_t),執行時間仍然是巨大的:
+-----------+--------------------+
| product_t | COUNT(z.productid) |
+-----------+--------------------+
| B | 4 |
| C | 10521 |
| D | 1 |
| F | 16 |
| G | 363 |
| J | 16 |
| L | 749 |
| M | 22 |
| O | 279 |
| P | 5304 |
| S | 22 |
| W | 662 |
+-----------+--------------------+
12 rows in set (0.81 sec)
當我使用整個索引(product_t,productid,forsale),執行時間非常快(0.005秒)。我應該如何改變它以使查詢更快?
我覺得莫名其妙查詢可以通過使用半的加入可以改善......但是我不知道
我認爲它最好完成 –
@GrijeshChauhan請檢查我的新答案。我設法做到了這一點哈哈 – bicycle
好的沒什麼是不可能的! ..很好..我也會讀你的答案。 –