用户可以在多个列上建立索引,这种索引叫做复合索引(组合索引)。
注意事项
复合索引具有前缀性!也就是建立复合索引时字段顺序很重要。查询sql必须包含复合索引的第一个,才会使用复合索引,而不是全表扫描。
oracle 9i后提供了skip scan index,来避免上面一点导致的问题。skip scan index功能适合于什么情况呢?如果oracle发现第一个字段值很少的情况下,例如假设emp表有gender(性别)字段,并且建立了(gender,ename,job,mgr)复合索引.因为性别只有男和女,所以为了提高索引的利用率,oracle可将这个索引拆成(‘男’,ename,job,mgr),(‘女’,ename,job,mgr)两个复合索引.这样即便没有gender条件,oracle也会分别到男索引树和女索引树进行搜索.
复合索引建议按照可选性排列。也就是说,选择性越高的字段请排在前面。