cdchenli 发表于 2018-9-23 09:43:55

oracle 索引的概念

  索引的概念
  官方定义:索引是建立在表的一列或多列上的辅助对象。可以加快对表的访问速率。
  索引类似书的目录。
  《转》索引的分类
  逻辑上:
  Single column 单行索引
  Concatenated 多行索引
  Unique 唯一索引
  NonUnique 非唯一索引
  Function-based函数索引
  Domain 域索引
  物理上:
  Partitioned 分区索引
  NonPartitioned 非分区索引
  B-tree:
  Normal 正常型B树
  Rever Key 反转型B树
  Bitmap 位图索引
  单行索引:
  基于单个列所建立的索引
  语法:create index 索引名 on 表名(列名)

  多行索引:
  基于两列或多列建立的索引,在一张表上可以有多个索引,但要求列的组合都不相同
  例如:

  唯一索引:
  当这一列数据中,任意两行的值都不相同,可以创建唯一索引。
  当创建 primary key 或者 unique constraint时 唯一索引都会被自动建立
  语法: create unique index 索引名 on 表名(列名);
  例如:

  非唯一索引
  单行索引,多行索引,唯一索引,非唯一索引都属于B*数索引,这种数索引适合索引DTP(动态)欢迎
  索引两大类,B*数索引和位图索引
  另外一种位图索引适合大型静态表仓库环境
  例如表中有很多重复的值,但很少去做改动时,适合创建位图索引。
  位图索引以一种压缩形式存放,因此占用空间较少。
  语法:create bitmap index 索引名 on 表名(列1,列2…);
  例如:


页: [1]
查看完整版本: oracle 索引的概念