我对产品的表如下指标:(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
好的没什么是不可能的! ..很好..我也会读你的答案。 –