索引基础

本文探讨了数据库索引的特点,包括透明性、适用于大表的查询加速、多种索引类型及维护。介绍了全表扫描、ROWID访问和索引访问三种数据访问方式,并详细阐述了索引扫描的四种类型及其适用场景。同时,分析了索引性能改进的因素,如数据选择性和数据分布。此外,还列举了可能导致索引失效的情况,如不等于运算符、函数使用和数据类型不匹配。
1. 索引的特点
  1)索引对所有用户透明
  2)对于具有只读性,或者插入,更新,删除操作较少的大表来说,建立索引可以提高查询速度
  3)可以在一列或者多列上边建立索引
  4)索引可以有多个
  5)索引需要磁盘存储,需要oracle自动维护
2. oracle 在RDBMS在访问数据时使用最根本的3中方法
  1)全表扫描
  2)ROWID
  3)索引
3. 如果读取表的数据总量 超过 5%-10%,那么常常需要全表扫描,还要根据数据的分布情况
4. 索引扫描分两步:1)扫描得到相应的ROWID
                   2)通过ROWID读取表中相应的数据
5. 索引改进性能的程度取决于两个因素:1)数据的选择性
                                     2)表数据在数据块上的分布
6. 索引扫描四种类型:
   索引唯一扫描:指通过唯一键,主键,oracle返回一个数据行
   索引范围扫描:1)在唯一键上使用range操作符(如>,,>=,<=,between)
                 2)在组合索引上,只使用部分列进行查询,导致查询出多行
                 3)对非唯一索引列上进行查询
   索引全扫描:查询出的数据必须全部从索引中得到
   索引快速扫描:和索引全扫描相似,但是快速扫描不进行数据的排序,可以使用多块读功能,也可以使用并行读功能,最大化数据吞吐量
7. 索引被抑制的情况: 1)使用不等于运算符:如,<=,!=,在where中使用这些运算符
                     2)使用is null或者is not null,where中使用
                     3)使用函数,在非基于函数的索引中,使用trunc,substr,to_date等函数,会使索引失效
                     4)比较不匹配的数据类型,数据类型不匹配
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值