达梦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左右的延迟

浙公网安备 33010602011771号