Oracle索引

Oracle索引

索引:就是一个创建表上一列或多列的数据库对象。
索引是用于加速数据"存取"的数据对象。
合理的使用索引可以大大降低 i/o 次数,从而提高数据访问性能。
索引的特点:
优点: 提高表的查询效率;
缺点: 降低表增删该效率;

--如果表没有创建索引,数据库对表的查询就是一行一行地查询。
--对索引表的查询并不是一行一行地查询,而是默认使用了二叉树算法进行查询。
--单列索引
--单列索引是基于单个列所建立的索引
create  [unique] index 索引的名称 
on 表(列名)             

--多列索引:复合索引
--复合索引是基于两个列或多个列的索引。
--在同一张表上可以有多个索引,但是要求列的组合必须不同
create  [unique] index 索引的名称 
on 表(列名1,列名2)      

--如果指定了unique关键字,那么索引列的值就不能够出现重复。
create table person(
       id number(10) primary key,
       name varchar2(200),
       gender number(1) default 1
);

--给 person 表的 name 建立索引
create index pname_index on person(name);

--给 person 表创建一个 name 和 gender 的索引
create index pname_gender_index on person(name, gender);

删除索引

drop index 索引名;

使用索引的建议

--因为索引的优点是提高查询数据的效率,缺点是会降低增删改的效率.

-- 1、数据量很大,需要查询的表中使用索引
-- 2、一般在查询比较多的表使用索引,如果表经常增删改,索引慎用
-- 3、多列索引的触发条件: create index 索引的名称 on person(name,address)  :多列索引有优先顺序
   -- 1)select * from person where name = ? and address =?  触发索引
   -- 2)select * from person where name = ? or address =?   不会触发索引
   -- 3)select * from person where address =? and name = ?  不会触发
   -- 4)select * from person where address =?               不会触发

--对于大文本和二进制类型的数据不应该创建索引;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值