达梦-索引
一 基本概念
1 .索引可分为聚集索引和非聚集索引。
(1)聚集索引(又称为一级索引、主索引):聚集索引就是按照聚集索引键构造一棵 B 树,
表数据存储在 B 树叶子节点上,通过定位索引可直接在 B 树中找到数据。每一个表有且只
有一个聚集索引。
(2)非聚集索引(又称为二级索引、辅助索引):将二级索引列和聚集索引列共同存储在 B
树叶子节点上。如果查找非聚集索引键值或聚集索引键值可直接在 B 树中找到;如果查找索
引键值以外的数据,则需要回到一级索引(聚集索引)中进行查找。一个表可以有多个非聚
集索引。
说明:
每个索引组织表只允许有一个聚集索引,如果之前已经指定过 CLUSTER INDEX 或者指定了
CLUSTER PK,则用户新建立 CLUSTER INDEX 时系统会自动删除原先的聚集索引。
指定 CLUSTER INDEX 操作需要重建表上的所有索引(自动重建),包括 PK 索引;
删除聚集索引时,缺省以 ROWID 排序,自动重建所有索引;
2 . 索引类型
聚簇索引
唯一索引
位图索引: 主要用来查询,不适合写入
函数索引:提升函数查询效率
组合索引:
全局索引与局部索引:主要针对分区表;
全文索引
二. 全局索引与局部索引
分区表创建全局索引和局部索引,在分区 truncate、drop、split、merge 等动作会自动重建全局索引。
全局索引:所有数据都放在一B树上
局部索引:每个分区都有一颗独立的B树,无论索引键是否是分区键
三. 索引维护
有效性/无效性(无效索引,DML 操作不会维护索引数据,执行计划不会选择走该索引) 无效的索引,重建后将有效 ;
可见性/不可见性(不可见索引,DML 操作仍然会维护索引数据,但执行计划不会选择走 该索引);
alter index ix_TESTTAB_username UNUSABLE; --不可用
alter index ix_TESTTAB_username REBUILD ONLINE; --索引重建
alter index ix_TESTTAB_username INVISIBLE;
alter index ix_TESTTAB_username VISIBLE;
四. 全文索引
1.概念:
(1)创建全文索引后,系统会自动产生四个相关辅助表(I 表,P 表,N 表,D 表):
CTI$INDEX_NAME$I, 用于保存分词结果,记录词的基本信息,通过该信息可以快速地 定位到该词的基表记录;
CTI$INDEX_NAME$P: 保存基表发生的增量数据变化,用于全文索引的增量填充。
CTI$INDEX_NAME$N: 用于保存原表记录 rowid 和新词条记录的 docid 的映射关系。
CTI$INDEX_NAME$D: 保存所有被删除的 docid,被删除的 docid 将不能通过全文索
引查询到。
(2)定义全文索引时可以指定分词参数 lexer ,DM 包含 5 种分词参数:
文章
阅读量
获赞