欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Oracle 索引 index

程序员文章站 2022-03-17 09:19:55
索引是一个模式对象,其中包含每个值的条目,该条目出现在表或集群的索引列中,并提供对行的直接快速访问。 创建一个索引: create index 索引名 on 表名 (字段名); 删除索引: drop...
索引是一个模式对象,其中包含每个值的条目,该条目出现在表或集群的索引列中,并提供对行的直接快速访问。

创建一个索引: create index 索引名 on 表名 (字段名);

删除索引: drop index 索引名

建立索引的目的就是为了加快查询速度,建立索引后会使dml操作效率慢,但是对用户查询会提高效率。删除一个表时,相对应的索引也会删除。另外,索引是会进行排序。

创建索引就是为了减少物理读,索引会减少扫描的时间。在经常要用到where的子句的字段,应该使用索引,另外还要看所查询的数据与全部数据的百分比,表越大,查询的记录越少,索引的效率就越高.;

举例:

create index upper_ix on employees (upper(last_name));

使用:

select first_name, last_name from employees where upper(last_name) is not null order by upper(last_name);

为了增加oracle使用索引而不是执行全表扫描的可能性,请确保函数在后续查询中返回的值不为空。如果没有where子句,oracle数据库可能会执行全表扫描。

注意事项:

where之后的字段条件,需与索引一致,否则可能失效。

如: create index ix_birth mployees (birthday);

查询语句: select birthday from mployees where to_char(birthday,'yyyy-mm')='2018-01';

结果:索引没有效果