- CBO下使用更具选择性的索引
基于成本的优化器(CBO,Cost-Based Optimizer)对索引的选择性进行判断来决定索引的使用是否能提高效率.如果索引有很高的选择性, 那就是说对于每个不重复的索引键值,只对应数量很少的记录.比如, 表*有100条记录而其中有80个不重复的索引键值. 这个索引的选择性就是80/100 = 0.8. 选择性越高,通过索引键值检索出的记录就越少.如果索引的选择性很低, 检索数据就需要大量的索引范围查询操作和ROWID 访问表的操作. 也许会比全表扫描的效率更低.
下列经验请参阅:
- 如果检索数据量超过30%的表中记录数.使用索引将没有显著的效率提高.
- 在特定情况下, 使用索引也许会比全表扫描慢, 但这是同一个数量级上的
区别. 而通常情况下,使用索引比全表扫描要块几倍乃至几千倍!