大型数据库系统设计与功效探讨

2013-05-28 05:43钟静
科学导报·学术论坛 2013年3期
关键词:功效系统设计

钟静

【摘要】数据库性能的影响因素是综合性的,当中包括DBMS的自身性能,以及数据库的逻辑设计,查询设计和数据库运行环境等等,本文简单探讨了影响数据库性能的几个方面,同时提出了一些建设性意见。

【关键词】大型数据库;系统;设计;功效

大型数据库执行情况长期以来都对于系统用户有着重大的影响。在设计软件项目时,测试用例数据量比较小,执行效率中很多问题都没有显现出来。当大型数据系统交付后,客户运行软件一段时间后,数据量执行效率中存在的问题就会突显出来。而软件设计者可能因为已过服务期,就不会花多余时间与兴趣来解决这个性能问题。执行效率与数据库系统的硬件参数配置,以及网络的参数配置都有较大关联,逻辑设计与各种数据库工具应用也会影响数据库的执行效率。大型数据库系统设计较好,也能够有效避免数据流峰值,以及瓶颈等部分的不利影响。

一、大型数据库的选型

当下数据库产品种类繁多,选择合适的数据库产品与数据库技术一样重要。数据库的厂商往往会将产品最佳面表现在性能清单以及技术基准表上,对数据库产品的缺点避而不谈,这样就会导致客户选择时走进误区。数据库选型通常要考虑五个主要因素,包括开发需求和数据库性能及成本,数据库的运行与管理、是否可以升级、总体的拥有成本。

二、大型数据库的设计

(一)数据模式的设计

在数据库的逻辑设计中,为确保数据库一致性与完整性,数据库应该依照关系数据库规范化要求来完成设计。在这些条件下完成的数据模式设计可以规避冗余、插入以及更新的问题。在实际操作过程中,常需执行查询以及汇总,按照规范化的理论来进行设计则增加其表连接,但是却降低了系统的运行。这时,应该根据实际情况适当降低数据库规范化理论要求,来达到实际操作中的需求。因此,合理有效的使用冗余,可以为查询带来较大的帮助。

(二)数据库的索引设计

所谓索引通常是指根据表数据的索引要求而产生的有序数据副本,使得查询能够在有序表进行,提升了查询数据速度,有效改善了系统的性能。但是如果使用索引会耗费一定的磁盘内存,开销增多,操作执行效率降低。所以,索引设计时应该选择确实有用索引,既能达到提升查询速度目的,还能节省一定量的存储空间。数据库的服务器对数据访问通常有以下两种方式:一是索引扫描,运用索引来访问数据,当对表查询时,如返回行数占据全表的百分之十至十五时,运用索引扫描可以优化查询性能;二是表扫描,读表中所有页,当查询超过全表的百分之四十及以上时,表扫描效率则较高。还应该结合实际数据库以及用户需求来确定如何选择。

尽管索引可以提高检索的性能,但不科学合理的索引也会造成系统低效。因为每在表中添加一个索引,数据库就需要做更多工作,而过多索引甚至可能导致索引碎片。因此,我们应该合理使用索引体系,尤其是创建索引时,尽量做到精益求精,确保数据库性能更好发挥。

创建的索引种类可以按照查询业务分为两类,单一列索引与联合索引。前者是在某一列上完成的索引创建,所以所占的空间较小,创建耗费时间较短,对程序影响相对较低;而后者是在多列上联合创建的,所以在多条件查询时,其运行效率较高。需要强调的是,对于使用频繁、实际数据量较大的数据库需要采用索引优化器来进行索引优化。

(三)数据库的查询设计

据统计,查询操作时各种大型数据库实际操作中所占比重最大的内容,不少软件程序员开发数据库的应用程序时,侧重于用户界面华丽,而忽略了查询语句效率问题,造成很多数据库的应用系统效率较低。所以,设计高校合理查询语句相当重要。

首先,需要正确使用索引。学会正确使用索引,有助于提高查询效率,条件自居中应该尽可能考虑使用有用的索引。比如说,在书籍查询表中,如果创建书本缩写或是编号的单列索引,就应该在查询语句的WHERE子句中使用字母缩写或是编号索引,让其成为有用索引其次,避免模糊匹配。LIKE关键字支持通配符匹配,技术上也被称作正则表达式。但是这种匹配常常耗费时间较多,所以应该尽量避免使用模糊匹配。第三,注意合并子查询。合并子查询是指将某些特定子查询重写为等价多个表连接操作。合并子查询的目的是为了减少查询语句层次,提高查询效率。最后,合理使用临时表来优化查询。在涉及到有关查询的特定情境下,可以通过构造临时关系来提高查询效率。

三、大型数据库的系统配置

(一)硬件系统的配置

数据库的服务器中比较重要的配置参数包括内存、网卡以及CPU。这当中影响较大的是内存,应该将数据放入内存中,比临时从硬盘中调数据要快很多。如果因为内存过小,就会导致数据在内存和硬盘问不断调动,当其占用率超过一半时,应该做好扩大准备。

(二)功能模块的配置

数据信息系统的处理时间通常有三个部分:数据库服务器的处理时间、网络传输的时间、客户端的信息处理时间。而解决系统性能关键点是尽量将三个时间总和降到最少。在大型数据库的系统中,数据库服务器配置与性能通常最高。但其工作量也最大、最繁重,需要同时满足多个用户的操作请求。除此之外,可以发现有部分系统工作还可以放在客户端来进行处理,也可以由数据库服务器处理,但要根据实际系统的各组成部分性能,进行科学合理安排。

四、数据库的性能测试

现下国内常用来检测数据库性能的工具是TPC-C。如果数据库系统性能出现下降,应该及时分析下降状况以及产生这个状况的原因。通常性能下降有以下几种情况:第一,系统渐渐变慢;第二,有部分系统客户端较慢;第三,系统工作高峰时较慢;第四,之前工作正常,突然变慢。应该运用计算机性能的检测工具观察计算机的性能,像是内存、CPU的使用率,分析研究后确定是硬件原因还是系统设计存在问题,从而对症下药,找到科学的解决措施。

目前国内已经有很多领域需要使用到大型数据库,像是超市、图书馆、学校资料室等等。只有通过不断优化完善设计,来提高数据库的运行效率,从而提高工作效率,达到大型数据库系统运用的功效。

猜你喜欢
功效系统设计
一种无人机缓冲系统
BUBA台灯设计
品“助读系统”之妙
墨镜的功效
直扩系统中的窄带干扰抑制
直扩系统中的窄带干扰抑制
有种设计叫而专
如何让你的化妆品发挥更大的功效
匠心独运的场地设计画上完美句点
同角三角函数的神奇功效