索引的基本原理

1. 索引的基本概念

  索引对性能的改进程度取决于数据的选择性以及数据在表的数据块中的分布方式。

  一般来说,索引可以提高查询的性能。select语句、update、delete命令、where子句的性能可以借助索引获得提高。

  但是增加索引会降低Insert语句的性能。索引列上的update操作会比没有索引慢很多,所以数据库必须管理对表的索引的改动。另外,大量行的delete操作也会由于表中存在索引而变慢。

 

2.不可视索引

  通过使用不可视索引,可以通过使索引不可见,临时“关闭”索引来查看查询在没有它们时的性能,由于不可视索引依然被维护,如果需要的话,可以“打开”它们。

  --使得索引不可视

  create index [index_name] on table_name(column_name) invisible;

  alter index [index_name] invisible;

  --使得索引可视

  alter index [index_name] visible;

 

3.组合索引

  索引包含多个列,称之为“组合索引”或“复合索引”。

  在没有引入跳跃式扫描功能之前,只有当索引中的前导列出现在where子句中,查询才能使用索引。Oracle 9i引入跳跃式扫描功能,即使没有使用前导列,优化器也可能会选择使用该索引,也可能选择索引快速全扫描或者全表扫描。

 

4.索引抑制

  1))使用不等于运算符(<> 、!=)

  2)使用is null 或者is not null

  3)使用like

  只有在like 'somevalue%'情况下才使用索引

  4)使用函数,如trunc、substr、to_date等,因为函数使得列值改变

  5)比较不匹配的数据类型

转载于:https://www.cnblogs.com/zll900406/p/4609579.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值