1
我有一个非常复杂的mysql查询,我试图了解是否有办法让它使用索引。查询看起来像:优化MySQL查询:join,where,group by,
SELECT t1.a, t1.b, t2.c, COUNT(t1.li), SUM(t1.tc)
FROM t1 LEFT JOIN t2
ON (t1.d=t2.d AND t1.e=t2.e)
WHERE t1.pt="XXX" GROUP BY t1.a, t1.b, t2.c
HAVING t1.li > 0 AND t1.tc > 4;
我只能够得到它使用优化上t1.pt索引(或“WHERE”条款),但不能让GROUP BY部分走得更快。
当分组来自两个表的列时,有没有办法让GROUP BY使用索引?
谢谢。你对HAVING部分是正确的。我按照你的建议做了,但是EXPLAIN仍然给了我:“使用where;使用temporary;使用filesort”,所以我猜GROUP BY部分仍然不使用任何索引。是否有可能使用它? – nickb