软件开发培训班 >> 网络技术 >> 网络搭建
选购新标准:根据数据库选服务器 |
||||||||||||||||||||||||||||||||||||||
|
数据库实际上是每一个电子交易、金融和企业资源规划系统的基础,随着数据库技术在商业应用中的不断发展,现在的数据库应用规模已经越来越大型化,具体体现在两个方面:一方面是数据记录的数量级开始跃升到十万、百万级别,这直接造成数据库体积的快速膨胀,例如一个人气论坛,日发贴量在1000左右,若运营一年,其数据记录就达到近40万条,而数据库占用空间将增加上百MB,如此庞大的一个数据库,在进行查询时对硬件系统要求是相当高的;另外,随着运营时间的增加,大部分数据库用户的访问量也会上升,例如一个WEB站点,日访问量假如是5000 IP,而假设每个IP点击动态页面4次,每个动态页面查询数据库5次,那么每日数据库将需要响应10万次查询。 因此,对那些以数据库作为主要支撑的应用来说(例如ERP系统、论坛系统),在具备一定的规模之后,对服务器硬件设备的要求将非常苛刻,而一旦服务器设备无法承受数据库的工作压力,将直接造成系统和各种业务的瘫痪,其损失将是无法估量的。 所以,我们今天就来探讨一下数据库应用和服务器之间的关系。 我们先来看一个很有意思的表格,它可以告诉你什么样的应用选择什么类型的数据库软件:
当然,就国内的实际情况来看,使用最广泛的无疑还是这四种数据库:Oracle,MS SQL Server,My SQL和Access,下面我们就逐个分析一下这几种数据库对于服务器的要求。 甲骨文 Oracle ORACLE 是以高级结构化查询语言(SQL)为基础的大型关系数据库,通俗地讲它是用方便逻辑管理的语言操纵大量有规律数据的集合。是目前最流行的客户/服务器 (CLIENT/SERVER)体系结构的数据库之一。ORACLE7.X以来引入了共享SQL和多线索服务器体系结构。这减少了ORACLE 的资源占用,并增强了ORACLE的能力,使之在低档软硬件平台上用较少的资源就可以支持更多的用户,而在高档平台上可以支持成百上千个用户。 ORACLE 数据库提供了基于角色(ROLE)分工的安全保密管理,在数据库管理功能、完整性检查、安全性、一致性方面都有良好的表现。ORACLE 数据库提供了与第三代高级语言的接口软件PRO*系列,能在C,C++等主语言中嵌入SQL语句及过程化(PL/SQL)语句,对数据库中的数据进行操纵。加上它有许多优秀的前台开发工具如 POWER BUILD、SQL*FORMS、VISIA BASIC 等,可以快速开发生成基于客户端PC 平台的应用程序,并具有良好的移植性。另外,ORACLE 数据库提供了新的分布式数据库能力,可通过网络较方便地读写远端数据库里的数据,并有对称复制的技术。 下面分析一下ORACLE 数据库:根据实际使用测试的经验,不少程序员都已经确认ORACLE 数据库在运行时效率是非常高的,大家发现这其实是因为它非常巧妙而合理的使用了系统内存,当然,它同时也是大量的使用了系统内存,至于其目的究竟是为了缓解硬盘缓存压力还是基于其他因素,我们就不深入探讨,我们可以明确的一点就是,ORACLE 数据库要有足够容量的系统内存进行支持才能较好的发挥其性能优势,尤其是那些数据库写入工作(例如 UPDATE、INSERT/ADDNEW等动作)比较频繁的应用,使用大容量内存非常有必要。 因此,如果您是使用ORACLE 数据库,可以在系统内存容量方面进行提升,现在的Nocona、Opteron处理器已经突破传统4GB内存直接寻址的限制了,但服务器主板的设计对于大容量内存系统的限制还是存在,大家还得注意这个问题;在内存控制方面表现比较出色的是IBM和HP,这两家公司的内存自主研发技术比较多也比较强大,尤其是IBM,不仅可以有效实现内存的大容量扩展,还能提供多种纠错和备份保护,对于企业级应用是非常适合的。另外,数据库对内存系统要求高并不是说一味提升内存容量就OK了,整体性能的提高无论任何时候都是真理;对于一些中高端的应用,我们推荐大家使用8路或更8路以上的服务器,特别是AMD的 Opteron 8XX系列,性能确实非常强悍,而且其独到的HyperTransport技术可以为多路系统提供足够的总线,加上内存控制器内嵌于核心之上,使得它的前端系统性能要比Intel的MP更为抢眼,如果是Unix系统,还可以使用IBM的Power 5系统,Power 5处理器是IBM自家的RISC(精简指令集)架构处理器,采用双核设计,性能也非常强悍。至于磁盘系统,基本上是取决于使用什么样的RAID控制卡和使用什么RAID工作模式,关于这方面的问题大家可以参看我们的磁盘阵列技术文章,相信会找到一个满意的答案,这里就不进行详述了。 MS SQL Server MS SQL Server对服务器设备的要求并不像ORACLE那么高,但是根据大多数程序员使用的感受,要提高MS SQL Server的性能在处理器和磁盘系统上做文章效果比较明显。鉴于MS SQL Server的主流应用环境一般都是双路XEON(这东西还不能移植到Unix系统,而且性能不如ORACLE,因此一般不用于高端领域),因此我们针对这类数据库提出的建议是:使用高频的Xeon处理器,建议使用双路,另外,Opteron表现确实非常优秀,也可以适当考虑;磁盘系统采用RAID 0或者RAID 1用户可以自己决定,如果有配阵列卡,组个RAID 5也可以;特别说明一下,Windows 2003 Server Enterprise Edition执行效率确实比Windows 2000 Advanced Server高,对于使用MS SQL Server的用户来说可以考虑使用2003作为操作系统。 My SQL 在我们的测试中经常使用 MYSQL作为数据库平台,一般是使用一个拥有5万注册用户的论坛数据库作为测试对象,测试结果也显示出一个问题,磁盘性能对MYSQL数据库查询的效率影响特别明显,要远远高出CPU、内存等配件的影响,一台配置一般的服务器只要拥有高性能的磁盘系统,一样可以获得很好的成绩;当然,如果在数据库查询中包含很多复杂的查询比较条件,那么CPU主频的作用也是非常明显的。这里,我们推荐这类数据库的用户使用高性价比的SATA阵列,用主板自带的软RAID 就行,性能同样可以令人满意,而且成本非常低,当然,适当提升CPU的主频也是有价值的。 Access Access数据库非常带有微软软件的特点--简单易用、占资源、效率低,因此要提升这种数据库的性能,从硬件方面只能是全面升级,如果要大幅度提升性能,建议升级服务器配置的同时将数据库系统升级到MS SQL Server。Access数据库和P4服务器是绝配,当然,如果使用P4服务器,那么升级的空间就不会太大了,所以还是以经济实用为主导。 总结 : (责任编辑:城尘) |