ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

informix索引分类

2021-06-11 12:33:06  阅读:169  来源: 互联网

标签:index 指向 INDEX 分类 索引 informix 数据 节点


B-Tree

优点:
– 根节点指向多个分支节点
– 分支节点指向叶子节点
– 叶子节点指向实际的数据行
缺陷:
– 当搜索一个连续的范围时效率不高
– 我们可以在上下方向方便的搜索,但是左右方向却不行

B+ Tree: 

 

级别:
        – 最上层只有一个根页/结点
       – 每个分支节点都有指向更低层节点的指针,和指向同一级别下一个节点的指针
       – 每个叶子节点都有一个指向表中数据行地址的列表
在叶子页/节点中的关键字值是有序的:
       – 一个索引项包含一个关键字值和1到多个的数据行指针
       – 关键字的值是来自于索引列中某一行的数据
       – 一个数据行指针提供了能定位到数据行的关键字(rowid)
在B+ 树中:
      – 根节点指向分支节点
      – 分支节点有向下,向左和向右的指针
      – 叶子节点可以指向左,右,并向下通过rowid指向数据行
      – 能够从一个节点向左或向右跳转到它的兄弟节点的能力是B+树的一个亮点

 

Hash:待补充

Bitmap:待补充

 

CLUSTER INDEX:

用于在物理上根据索引顺序组织数据的存储位置,去除extents内数据的交叉,

       --使得数据页连续,继而可以避免排序操作
使用cluster index:
       – 静态表,很少或者不修改数据的表(不适合动态表)
       – 对于需要频繁读操作,并且读取记录数量巨大的表
使用CLUSTER在物理上基于索引循序重组数据记录:
       – Informix会基于索引顺序重新组织数据页
       – 因此,一个表只能有一个CLUSTER索引
CREATE CLUSTER INDEX ix_cust ON customer(lname);

ALTER INDEX ix_cust TO CLUSTER;

函数索引:

          functional index可以是B-tree index, R-tree index。

函数必须基于用户定义函数(UDF)
       – 不能基于built-in function 创建函数式索引
       – 但是我们可以创建一个调用build-in函数的UDF,然后基于它创建函数式索引

 B-Tree 的例子:
       CREATE INDEX ix1 on state (UPPER(sname));    ###无效(upper 是built-in function):

CREATE FUNCTION myupper (v_value char(15))
RETURNING char(15) with (not variant);
define r_value char(15);
execute function upper(v_value) into r_value;
return r_value;
END FUNCTION;
create index ix1 on state (myupper (sname));         #### 有效(定义UDF myupper):

 

R-Tree

              用于GIS处理,暂时不用关心拉。

 

索引示例:

CREATE UNIQUE CLUSTER INDEX ix_manufact ON manufact(manu_code)  FILLFACTOR 80;
CREATE INDEX ix_man_stk ON  items(manu_code desc, stock_num);
CREATE INDEX order_ix1 ON orders (order_num, order_date desc);
 

Attached index没有单独的表空间,并且索引数据是在表的tblspace中与数据交错存放的.

Detached Indexes是说index的extents是与表的extents分开的,存储在自己的tblspace中.

 

增加主键:

ALTER TABLE tab1 ADD CONSTRAINT PRIMARY KEY (col1);

 

key-only搜索: 

       当查询的所有列都在索引中时,也就是select和where后面的列都在索引中的时候就会使用key-only方式搜索。也就是所谓的三星索引。

 

涉及索引性能的几个内容:

1. 估算创建索引需要的临时dbspace空间和存储索引需要的空间,优化存储索引和临时dbspace的位置(DBSPACETEMP)
2. 设置PDQPRIORITY 和PSORT_NPROCS 环境变量,用于优化并行的索引构建

3.  如果有必要,检查并优化以下配置参数
     B-tree cleaners (自动清除已删除关键字对应内存页的线程)
     Buffers (I/O数据和索引缓存)
     Temporary dbspaces (用于索引构建)
      Parallelism (用于加速索引构建和其他引擎操作)

 

启用禁用索引:

set constraints/indexes … enabled

标签:index,指向,INDEX,分类,索引,informix,数据,节点
来源: https://blog.csdn.net/David_ifx/article/details/117810895

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有