当前位置:   article > 正文

Orcale数据库索引的使用及优化_oracle索引优化 多一字段

oracle索引优化 多一字段

        索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息。

        索引一般加在查询语句的where条件所需的字段上,方便快速查询。

一个表可以创建多个字段不同的索引。

创建语句:

create index table_index_name on table_name (column1,column2);

表中已有数据且数据量大的时候可以开启多线程创建索引,

  1. --开启16个线程给table_name 表在column1,column2两个字段上创建索引table_index_name
  2. create index table_index_name on table_name (column1,column2) nologging parallel 16;

创建完成后,再执行查询语句,速度就会快很多。

        查看是否使用索引:explain

在执行查询语句的时候如果要看是否启用了索引查询的话,在查询语句前加上explain关键字。

sql窗口下,在执行时按F5也可以查看使用到的索引。

如果KEY字段的值等于我们定义的索引名字,标识该查询用到了这个索引。

        是否充分使用了索引:key_len算法

从上一步骤的查看索引中执行的结果里有一个key_len字段。

字段本身的长度 eg:varchar(50)

字段字符类型 varchar+2,char+0

字段是否为null:null+1  ,非空+0

字段字符集:utf-8(存纯文字内容,占用3个字节)

根据以上规则计算出来字段的key_len,对比结果,可以找出索引究竟哪些字段确实使用了。

50*3+2=152,key_len=152,则索引使用了这个varchar(50)字段

       优化策略一:范围条件放最后

索引如果用到了范围条件(如时间范围的><),应该吧这个字段放到索引定义的最后边。

        优化策略二:最佳左前缀原则

 

 

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号