SELECT a.F1, SUM(a.F2) AS F2Sum
FROM Ta a INNER JOIN Tb b ON a.Id = b.Id
WHERE b.CId = 'Value' AND a.F2 IS NOT NULL
GROUP BY a.F1
b.Id/b.CId上已经有独立索引
a.Id上有独立索引

解决方案 »

  1.   

    看一下a.f1, a.f2 的数据分布。索引优化关键是设计者自己想让MYSQL按什么方法来执行SQL语句。
      

  2.   


    你这个SQL可以优化的,我想到的有2方面
    1:a 和 b 分别经过WHERE条件后,记录集的条数,估算一下谁的记录小,在INNNER JOIN的时候,谁放在前面
    2:经过WHERE估算后,谁的记录集小,在WHERE条件中,谁放前面。
      

  3.   


    怎么看分布?
    Ta 380多万
    Tb 160多万