4.4.5 数据库的物理设计
数据库物理设计的主要目标是对数据库内部物理结构作调整并选择合理的存取路径,以提高数据库访问速度及有效利用存储空间。在现代关系数据库中已大量屏蔽了内部物理结构,因此留给用户参与物理设计的余地并不多,一般的RDBMS中留给用户参与物理设计的内容大致有如下几种:
●索引设计
●集簇设计
●分区设计
现就上面这三个方面的设计作介绍。
1.索引设计
索引设计是数据库物理设计的基本问题,有效地进行索引选择对提高数据库访问效率有很大作用。
索引一般建立在关系的属性上,它主要用于常用的或重要的查询中,下面给出符合建立索引的条件:
(1)主关键字及外关键字上一般都建立索引,以加快实体间连接速度,有助于引用完整性检查以及惟一性检查。
(2)以读为主的关系表尽可能多的建立索引。
(3)对等值查询如满足条件的元组量小可考虑建立索引。
(4)有些查询可从索引直接得到结果,不必访问数据块,此种查询可建索引,如查询某属性的MIN,MAX,AVG,SUM,COUNT等函数值可沿该属性索引的顺序集扫描直接求得结果。
2.集簇设计
集簇即是将有关的数据元组集中存放于一个物理块内或相邻物理块或同一柱面内以提高查询效率,在目前的RDBMS中均有此功能,集簇一般至少定义在一个属性之上,也可以定义在多个属性之上。
集簇对某些特定应用特别有效,它可以明显提高查询效率,但是对于与集簇属性无关的访问则效果不佳,而且建立集簇开销很大,牵涉到整个关系的改造、重建,因此只有在特定情况可考虑建立集簇:
(1)通过集簇访问是对应表的主要应用时可考虑建立集簇。
(2)集簇属性的对应数据量不能太少也不宜过大,太少效益不明显而太大则要对盘区采用多种连接方式,对提高效率会产生负面影响。
(3)集簇属性的值应相对稳定,以减少修改集簇所引起的维护开销。
3.分区设计
数据库中的数据一般存放于磁盘内,由于数据量的增大,往往需要用到多个磁盘驱动器或磁盘阵列,因此就产生了数据在多个盘组上的分配问题,这就是所谓磁盘分区设计,它是数据库物理设计内容之一。
分区设计的一般指导性原则是:
(1)减少访盘冲突,提高I/O并行性。多个事务并发访问同一磁盘组时会产生访盘冲突而引发等待,如果事务访问数据能均匀分布于不同磁盘组上则可并发执行I/O,从而提高数据库访问速度。
(2)分散热点数据,均衡I/O负担。在数据库中数据被访问的频率是不均匀的,有些经常被访问的数据称热点数据(Hot Spotdata),此类数据宜分散存放于各磁盘组上以均衡各盘组负荷,充分发挥多磁盘组并行操作优势。
(3)保证关键数据快速访问,缓解系统瓶颈。在数据库中有些数据如数据字典,数据目录其访问频率很高,保证对它的访问直接影响整个系统的效率,此种情况可以用某一固定盘组专供其使用以保证其快速访问。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。