什么是组合索引?
基于多个字段而创建的索引就称为组合索引。
如何创建组合索引?
联机丛书中关于CREATE INDEX语句的说明很详细,可以看看。如果是要通过企业管理器的话,你可以选中那些需要用来创建组合索引的字段,然后点一下工具栏中的那把“金钥匙”。
如何使用组合索引?
这个问题实际上就是所谓的索引覆盖了。组合索引是有顺序的(不是升序降序,而是多个字段的先后顺序),你的WHERE字句中的条件如果含有该组合索引从左到右的全部或部分字段的话,就算是覆盖上了。全覆盖自然好,不过也不是必须的,而且跟查询速度也没有必然的关系。
另外,顺便多说两句。
1. WHERE子句中各条件的顺序不必跟组合索引中个字段的一致,只是人为写成一致的话要放心一些罢了,毕竟保不准查询优化器什么时候发点神经。
2. 组合索引的非完全覆盖可不一定比单字段索引慢哦,说不定还更快呢。这里引申出一句话:数据库性能优化不是教条式的。
组合索引的英文名叫Composite Index