达梦8技术支持笔记(5)

一、全文索引 fulltext   (在搜索引擎关键字上使用,大文本用普通索引模糊查询速度过慢)

支持文本类型,中文要选定特定分词类型,英文用空格分隔。

达梦的选项:

分词的类型

  • · 默认分词:不指定分词类型,采用服务器默认的分词方式
  • · 中文最少分词:中文最少分词方式
  • · 机械双字分词:机械双字分词方式
  • · 中文最多分词:中文最多分词方式
  • · 英文分词:英文分词方式

存储表空间

  • · 不填充索引信息
  • · 创建后同步填充索引信息:
  • · 事务提交后增量更新填充索引信息

支持:

CLOB和TEXT只能建立全文索引、BLOB不能建立任何索引。

不支持:

1、虚拟列上建立位图连接索引和全文索引。

2、Huge表不支持全文索引。

3、创建全文索引时,若不指定<SYNC子句>,系统在创建全文索引后不进行填充,需 要用户使用全文索引修改语句填充索引信息后才能进行全文检索;指定为SYNC时系统将在 全文索引建立后对全文索引执行一次完全填充;指定为SYNC TRANSACTION时,每次事务 提交后,若基表数据发生变化,系统会自动以增量更新方式填充全文索引;

4、不支持快速装载建有全文索引的表;

5、不支持对建有全文索引的表进行表级备份恢复

6、 不支持生成统计信息。

 

二、位图索引

对于婚姻状况这一列,位图索引生成三个向量,已婚为11000...,未婚为00100...,离婚为00010...。

RowId

1

2

3

4

5

...

已婚

1

1

0

0

0

 

未婚

0

0

1

0

1

 

离婚

0

0

0

1

0

 

 

1、适合只有几个固定值的列,如性别、婚姻状况、行政区等等,而身份证号这种类型不适合用位图索引。

2、 位图索引适合静态数据,修改会引发行锁。

 

三、聚簇索引

一表一个,叶子节点存储数据,速度快,在dm.ini配置文件中,可以指定配置项使表中的主键自动转化为聚簇主键,该配置项 为PK_WITH_CLUSTER。默认情况下,PK_WITH_CLUSTER为1,即建表时指定的主键自动 转化为聚簇主键;若为0,则主键不会自动变为聚簇主键。

表的填充因子和分页操作需要和实际业务相结合。多的分页操作会有索引碎片,需要重建索引。

    产生锁时,行锁的前提是你的索引高效,如果你的设计和编码不高效,优化器可能选择扫描操作,造成锁升级,锁住的数据就不是行,有可能是页甚至表或分区,这样查询操作就会被大面积影响。

    Huge不支持聚簇索引。

 

四、位图连接索引

    在olap中改进维度表和事实表的查询性能,存放连接结果。适用于常规位图索引的限制也适用于位图连接索引。

创建位图连接索引的注意事项:
1、创建位图连接索引时WHERE 子句中的关联条件列必须是主键或唯一约束(不符合条件会报错ORA-25954: missing primary key or unique constraint on dimension);
2、在指定索引列时,如果两表都具有相同列,必须使用表名.列名的方式指定或者别名.列名的方式指定(不符合条件会报错:ORA-00918: column ambiguously defined);
3、创建位图索引同样DML操作效率差,建立前请仔细分析表结构和数据DML操作率;
4、更新表数据时同样会有锁定主导表、关联表问题。

 

五、空间索引

    优化空间数据查询,支持opengis的不同维度建模,达梦闭源无详细介绍。维度层次和原理可参考oralce 、mysql等数据库。

 

六、索引列以有序

    通过二分查找快速定位,没啥说的。

 

七、异步索引

降低成本,我们可以考虑使用异构索引表,其本质就是利用异步触发器,将原表内的每一次更新,都换一个写入的维度,写入到新的表中。如果您对数据库比较熟悉,那么简单映射一下,异构索引表的作用就基本等同于传统数据库中的索引概念,其不同之处,主要是索引构建过程从同步改成了异步,索引表和主表之间可能存在100ms左右的延迟

posted @ 2020-08-23 21:37  gamersansan  阅读(1042)  评论(0)    收藏  举报