索引的原理

索引的原理
  • 索引类似字典检索。
  • 用户使用字典时,可以通过检索目录来获得目标所在页数,然后直接在该页获得查找目标。
  • 在数据表的某列上简历了索引,oracle将另辟新的空间,以存储该列上所有值与其记录的rowid的对应关系,当用户试图以索引列作为搜索条件时,oracle将利用索引来获得相应的rowid,并捕获该记录。
创建索引语法

create index [indexname] on [tabelname][(columnname)]
eg:create index idx_people_name on people(name)

使用索引查询的效果

例子:
select * from people order by id

IDNAMESTATUS
1JamesACT
2JohnACT
3RobertACT
4MichaelACT
5WilliamACT
6DavidACT
7RichardACT
8CharlesACT
9JosephACT
10ThomasACT

此时如果select * from people where name ='David'

  1. 一般查询
          将执行全表扫描,当搜索到第6条记录的时候,会发现该记录符合条件,纳入结果集合,但是搜索不会停止,因为数据库并不知道后面的记录是否还有符合条件的记录,直至整个表都搜索完成,才会返回最终结果
  2. 使用索引
          表中的所有数据将按照字母表顺序进行分块处理,假如分成两个块
CM
Charles,David,James,John,JosephMichael,Richard,Robert,Thomas,William

此时,oracle只会在第一个数据块中搜索,并且当搜索到David之后,如果下一条记录的name不是David,oracle将停止搜索,并获得其对应的rowid,根据rowid快速定位该记录。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值