文件名称:管理索引的准则-the design and analysis of algorithms
文件大小:4.17MB
文件格式:PDF
更新时间:2024-06-29 04:38:49
达梦,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 语句中列的排序会影响查询的性能。通常,将最常用的列放在最前 面。 如果查询中有多个字段组合定位,则不应为每个字段单独创建索引,而应该创建一个组