【文件属性】:
文件名称:管理索引的准则-the design and analysis of algorithms
文件大小:4.17MB
文件格式:PDF
更新时间:2021-06-09 10:52:09
达梦,DM7
11.1 管理索引的准则
索引是与表相关的可选的结构(聚簇索引除外),它能使对应于表的 SQL 语句执行得更
快,因为有索引比没有索引能更快地定位信息。DM7索引能提供访问表的数据的更快路径,
可以不用重写任何查询而使用索引,其结果与不使用索引是一样的,但速度更快。
DM7提供了几种最常见类型的索引,对不同场景有不同的功能,它们是:
1. 聚集索引:每一个普通表有且只有一个聚集索引;
2. 唯一索引:索引数据根据索引键唯一;
3. 函数索引:包含函数/表达式的预先计算的值;
4. 位图索引:对低基数的列创建位图索引;
5. 位图连接索引:针对两个或者多个表连接的位图索引,主要用于数据仓库中;
6. 全文索引:在表的文本列上而建的索引。具体内容请参考第 23章。
索引在逻辑上和物理上都与相关的表的数据无关,作为无关的结构,索引需要存储空间。
创建或删除一个索引,不会影响基本的表、数据库应用或其他索引。当插入、更改和删除相
关的表的行时,DM7会自动管理索引。如果删除索引,所有的应用仍继续工作,但访问以前
被索引了的数据时速度可能会变慢。
11.1.1 在表中插入数据后创建索引
一般情况下,在插入或装载了数据后,为表创建索引会更加有效率。如果在装载数据之
前创建了一个或多个索引,那么在插入每行时 DM7都必须更改和维护每个索引,使得插入效
率降低。
11.1.2 索引正确的表和列
使用下面的准则来决定何时创建索引:
1. 如果需要经常地检索大表中的少量的行,就为查询键创建索引;
2. 为了改善多个表的连接的性能,可为连接列创建索引;
3. 主键和唯一键自动具有索引,在外键上很多情况下也创建索引;
4. 小表不需要索引。
选取表中的索引列时可以考虑以下几点:
1. 列中的值相对比较唯一 ;
2. 取值范围大,适合建立索引;
3. CLOB和 TEXT只能建立全文索引、BLOB不能建立任何索引。
11.1.3 为性能而安排索引列
在 CREATE INDEX 语句中列的排序会影响查询的性能。通常,将最常用的列放在最前
面。
如果查询中有多个字段组合定位,则不应为每个字段单独创建索引,而应该创建一个组