对于where a = 1 and b > 1 order by c 如何建立索引?

备选索引1:ab
备选索引2:acb

ab

ab能够减少索引扫描行数,但会造成filesort,成本较高

acb

不会有filesort步骤,但扫描的索引行数比ab更多,但两个索引下的回表次数是一样的。
acb索引会用到索引a,但b会提供过滤来决定是否回表,因此回表开销基本相同

综合

需要根据字段区分度综合衡量
如果ab的区分度很大,且查询数据量小,排序可以在内存中执行,不造成filesort,则可以选择ab
如果a的区分度足够,且查询数据量较大,则选择acb,节省filesort的昂贵开销。

如何对十亿大表在线加索引