oracle索引的创建规则及使用

oracle的索引本质上是拿空间换时间,建索引是为了增加查询的速度,但是却消耗了空间。

oracle索引包括三大块:

一、rowid查询:

    rowid是oracle的一大特色点,使用rowid查询是速度是最快的。

二、B-树索引:

具体请移步: https://blog.csdn.net/diyyong/article/details/19041485

三、自建索引:

《1、索引选择:

    <1、查询结果集的大小是直接影像SQL性能的根本因素,一般会选择结果集为总量数据的5%左右建索引。

    <2、选择区分度高的字段建索引:比如商城的商品种类表id

    <3、DML操作频繁的不建议使用索引。

    <4、对于状态字段,可考虑使用用decode函数

    具体请移步:https://blog.csdn.net/weeknd/article/details/71157044

《2、复合索引:

    <1、建复合索引是因为单字段选择度不够高,为了提升选择度所有使用复合索引。(条件:两个字段总是同时出现)

    <2、复合索引字段查询顺序:

            1.区分度高的字段放前边

            2.where条件出现次数多的放前边

四、null值与索引

     1、null值不会计入索引,对于字段为null值多的可考虑建索引。

     2、is null 作为查询时不会用索引,可考虑使用函数:nvl(字段,值)(字段,值),

     具体请移步: https://blog.csdn.net/zwhfyy/article/details/3960250/

五、无法使用索引的情况

      1、数据类型不一致问题:应用字段的数据类型与数据库类型不一致,无法使用索引。

      2、对于字段进行运算,例如count、sum、avg等等,无法使用索引,这里比较突出的是时间的运算。

      具体请移步: http://www.cnblogs.com/xiaobaihome/archive/2012/03/14/2395568.html

      3、模糊查询时无法使用索引。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值