达梦数据库基础知识(八)如何管理索引

一、 管理索引的准则索引是与表相关的可选的结构(聚簇索引除外),它能使对应于表的SQL语句执行得更快,因为有索引比没有索引能更快地定位信息。DM8索引能提供访问表的数据的更快路径,可以不用重写任何查询而使用索引,其结果与不使用索引是一样的,但速度更快。DM8提供了几种最常见类型的索引,对不同场景有不同的功能,它们是:1). 聚集索引:每一个普通表有且只有一个聚集索引;2). 唯一索引:索引数据根据索引键唯一;3). 函数索引:包含函数/表达式的预先计算的值;4). 位图索引:对低基数的列创建位图
摘要由CSDN通过智能技术生成

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

3、 为性能而安排索引列
在CREATE INDEX语句中列的排序会影响查询的性能。通常,将最常用的列放在最前面。
如果查询中有多个字段组合定位,则不应为每个字段单独创建索引,而应该创建一个组
合索引。当两个或多个字段都是等值查询时,组合索引中各个列的前后关系是无关紧要的。但是如果是非等值查询时,要想有效利用组合索引,则应该按等值字段在前,非等值字段在后的原则创建组合索引,查询时只能利用一个非等值的字段。

4、 限制每个表的索引的数量
一个表可以有任意数量的索引。但是,索引越多,修改表数据的开销就越大。当插入或删除行时,表上的所有索引也要被更改;更改一个列时,包含该列的所有索引也要被更改。因此,在从表中检索数据的速度和更新表的速度之间有一个折衷。例如,如果一个表主要仅用于读,则索引多就有好处;如果一个表经常被更新,则索引不宜多建。
5、 估计索引大小和设置存储参数
创建索引之前先估计索引的大小能更好地促进规划和管理磁盘空间。可以用索引以及回滚段、重做日志文件的组合估计的大小来决定支持所期望的数据库所需的磁盘空间的大小。通过这些估计,就可以购买合适的硬件和做出其他正确的决定。
用单个索引估计的大小能更好地管理索引使用的磁盘空间。创建索引时,可以设置适当的存储参数,并改善使用该索引的应用的I/O性能。例如,假设在创建索引之前估计索引的最大大小,之后就可以在创建该索引时设置适当的存储参数,就能很少为表的数据段分配簇。并且,所有的该索引的数据都被保存在相对连续的磁盘空间扇区中,这就减少了使用

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值