一起学习网 一起学习网


Oracle初学者笔记(七)--Oracle数据库对象(下)

网络编程 Oracle初学者笔记(七)--Oracle数据库对象(下) 06-22

索引
与表关联的可选结构;
快表,加快SQL;
减少磁盘I/O操作;
物理上索引存储在Oracle的文件上,称为索引表空间;
Oracle自动维护索引;

 唯一值索引:定义在索引的列中没有重复的值;
     Oracle自动为主键和唯一键列创建唯一索引;
     create uinque index用于创建唯一索引;
   //如果为某个表的某个列创建了唯一值索引,则即使这个列没有
   唯一值约束,或者说主键不能重复的约束,也会被强制为不可重复
   插入;因为索引是唯一值索引;
    //注意,索引对表的作用是自动的,当你查询的时候,系统会
    自动使用可用索引来提高速度,当你试图插入重复值的时候,
    如果存在唯一值索引,就会自动阻止你;但是你不要试图象查询表一样
    查询索引,索引只是后台的助手;
 组合索引:连接索引;
  在表的多个列上创建的索引;
  组合索引的列可以按任意顺序排列;
  对于在where子句中包含多个列的查询,可以提高速度;
   因为索引已经把多个列组合在一起了哦!
  例子:
  scott>create index idx_empnoandeptno on emp(empno,deptno);
  索引已创建。
  scott>select * from emp where empno=7782 and deptno=10;
  //注意,索引是自动被调用或者说使用的,当select语句执行的时候
  自动用索引来检索;
 反向键索引:
 //普通的查询是全表扫描,而索引就可以让系统只扫描
   查询列的索引,然后去扫描表的被选择行;
  反转列中的每一个字节;
  将数据插入操作分布在 整个索引上;
  create reverse index;
  //当某个列的值的前面几位都是一样的,只有后面的位有区别;
  //当经常向表中添加数据,而不经常更新的时候;
 位图索引:
  bitmap index;
  位图索引到底是干什么呀??
 索引组织表:
  表的数据和索引的数据存储在一起;
  create table tablename(...primary key)
  organization index;
  其实索引是不存在的;
  基于主键查询;
 基于函数的索引:
  其实很简单,就是用表的一个列的函数结果做索引;
  同样,索引是在后台自动工作的;
  当你再次使用那个索引创建时的函数查询表时,就会自动
  调用已经用函数创建的索引,而不是从表中得到数据再用
  函数计算;很显然,这加快了速度;

键压缩索引:用后缀项共享前缀项;compress;
 分区索引:
  索引存储在不同的分区中;
 
 
  簇
有公共列的两个或者多个表的集合;
簇的表中的数据存储在公共的数据块中;
簇的表和普通表是一样的,只是多个表中的公共列
只存储了一份在公共的数据块中;

创建簇:
 先创建簇,后创建组成簇的表;
 create cluster;
 插入数据的性能降低;
 
//在主键,外键关系表情况下用簇;


编辑:一起学习网

标签:索引,多个,数据,函数,组合