Oracle 学习(二)---索引
来源:互联网 发布:unity3d教程 百度网盘 编辑:程序博客网 时间:2024/06/17 14:27
文章引用参考
http://www.cnblogs.com/djcsch2001/articles/1823459.html
索引的创建
create (unique) index index_name on table (column)
[ASC|DESC] [TABLESPACE tablespace]
index_name为索引的名称
ASC|DESC 为升序降序排列
TABLESPACE 表空间
创建索引的标准语法:
CREATE INDEX 索引名 ON 表名 (列名)
TABLESPACE 表空间名;
创建唯一索引:
CREATE unique INDEX 索引名 ON 表名 (列名)
TABLESPACE 表空间名;
创建组合索引:
CREATE INDEX 索引名 ON 表名 (列名1,列名2)
TABLESPACE 表空间名;
创建反向键索引:
CREATE INDEX 索引名 ON 表名 (列名) reverse
TABLESPACE 表空间名;
先来说一下unique的使用和差别
添加unique后表示为唯一索引
区别:唯一索引unique index和一般索引normal index最大的差异是在索引列上增加一层唯一约束。添加唯一索引的数据列可以为空,但是只要尊在数据值,就必须是唯一的。
联系:1)unique index就是额外添加唯一性的约束。该约束严格的保证索引列的取值是唯一的,这在一些数据列上的业务约束是很重要的功能。比如一个数据列,不能作为主键,而且允许为空,但是业务上要求唯一特性,这个时候用唯一性索引就是最好的旋转。2)性能上两者并无很大区别。
using index用法:
create primary key …. Using index :创建主键的时候同时将其设为索引,名称与主键名称相同。
在创建一个PK的时候,会自动创建一个与之对应的唯一索引。(因为某个字段如果被设置为Unique便会自动被设为索引)。如果不特别指定,这个索引的表空间和表的表空间是一样的,但是不建议将两者放在一起。
create table test_table(name varchar(20));//不声明tablespace 默认分配一个表空间
alter table test_table add (id primary key) using index tablespace tablespace1;//没有声明名称默认为primary key相同的名称
2.建立索引的目的
建立索引的目的是:
l 提高对表的查询速度;
l 对表有关列的取值进行检查。
但是,对表进行insert,update,delete处理时,由于要表的存放位置记录到索引项中而会降低一些速度。
注意:一个基表不能建太多的索引;
空值不能被索引
只有唯一索引才真正提高速度,一般的索引只能提高30%左右。
ALTER [UNIQUE] INDEX [user.]index
[INITRANS n]
[MAXTRANS n]
REBUILD
[STORAGE n]
其中:
REBUILD 是根据原来的索引结构重新建立索引,实际是删除原来的索引后再重新建立。
ALTER [UNIQUE] INDEX [user.]index
[INITRANS n]
[MAXTRANS n]
REBUILD
[STORAGE n]
提示:DBA经常用 REBUILD 来重建索引可以减少硬盘碎片和提高应用系统的性能。
例:
alter index pk_detno rebuild storage(initial 1m next 512k);
ALTER INDEX emp_ix REBUILD REVERSE;//Reverse 为反转函数
Oracle8i 的新功能可以对索引的无用空间进行合并,它由下面命令完成:
ALTER INDEX . . . COALESCE;
索引的删除
DROP INDEX [schema.]indexname
例如:
sql> drop index test_index;
注:当表结构被删除时,有其相关的所有索引也随之被删除。
PS:
//将test_table name 字段转化为大写函数 (虽然我还不知道他的具体应用价值在哪里 = =)
Create index upper_index on test_table(upper(name));
select * from test_table where upper(name) like 'JOH%';
[INITRANS n]
[MAXTRANS n]
REBUILD
[STORAGE n]
- Oracle 学习(二)---索引
- oracle学习笔记(二)---约束、授予系统权限、索引
- oracle重建索引(二)
- oracle sql 优化-索引(摘二)
- oracle sql 优化-索引(摘二)
- Oracle数据库中的索引(二)
- oracle sql 优化-索引(二)
- Oracle索引使用规则(二)
- Oracle学习之数据库管理(二)索引&约束&表分区
- oracle学习(二)
- Oracle学习(二)
- ORACLE学习(二)
- oracle 学习(二)
- Lucene学习-创建索引(二)
- MongDB学习笔记(二):索引操作
- Lucene学习笔记(二)--------构建索引
- 【Oracle学习】之 索引(index)
- oracle索引的学习
- Shared Pool 原理
- 列举IE与其他浏览器不一样的特性?
- 文件流_File文件操作_功能简单汇总
- win10安装Mingw的一点心得
- JQ带滚动效果的导航条
- Oracle 学习(二)---索引
- (初学)requests批量爬取搜狗图片
- C++STL总结(附带容器迭代器泛型算法详情链接【未完成】)
- C语言学习开始
- Logistic回归
- 堆的两种写法
- 转:GCC头文件和库文件搜索路径问题
- 利用ajax技术实现通用分页,在jsp页面呈现
- python之字符编码