我先简单地经验性地回答一下:
1)a和b谁先谁后的影响可以忽略不计。
2)如果查询时在where中用到a,b这两个列,建立包含这两个列的索引,查找速度会更快。
我觉得是有区别的。
假设索引MyIndex包含a、b两列(a在前,b在后)。那么如果查询条件中同时包含a和b,会直接用到这个索引,而且是index seek。如果查询条件中只包含a,那么也会直接用到这个索引,而且是index seek。但是如果查询条件只包含b的时候,假设没有其它额外索引可供使用(比如b上建立的单独索引),那么也会使用MyIndex这个索引,但是就是index scan而不是index seek了。而index scan的速度明显小于index seek。
建立一个索引,A在前B在后.这时如果你的查询条件只有B时,这个索引是无法使用的
不一定不会用到,如果没有其他索引可用,当查询B时会scan index的
只是说有a就能用到索引,这种楼主可能还是不能理解,楼主先理解索引的结构,B树,它是怎么查找的,为什么什么提速。
楼主可以参考我三写的索引的三篇博文,希望对你有帮助。