现在的位置: 首页 > 综合 > 正文

数据库横评 5款主流行式数据库评测总结

2013年12月10日 ⁄ 综合 ⁄ 共 4090字 ⁄ 字号 评论关闭

 【IT168 专稿】经过前面一系列的文章,我们对行式数据库的评测已经结束,下面的文章是对Oracle 11.2、db2 9.7、MS SQL Server 2008 R2这3种商业数据库和MySQL 5.5、PostgreSQL 9.04这2种开源数据库做一个总结。虽然市场上还有众多的商业和开源数据库,例如:Sybase ASE、Ingres、SAPDB、Interbase及Firebird等,但无论市场份额还是影响力均不如以上5种数据库,若没有特别的需求,一般用户接触的机会也不多,故不再单独评测。

  数据库评测回顾:

    •
行式数据库评测:Oracle 11g R2企业版

    •
主流行式数据库评测:DB2 9.7企业版

    •
行式数据库评测:SQL Server2008 R2版

    •
行式数据库PostgreSQL 9.04版本评测

    •
主流行式数据库评测之开源MySQL5.5版本

  由于我们前面的评测主要关注OLAP的相关功能和性能,并没有全面覆盖数据库的各方面特性,这里将简略地补充几点。

  首先,比较TPC-H查询性能

  对于未压缩和压缩后的数据、我们选取各自优化后的最佳成绩。


▲表1 各种数据库TPC-H 10GB数据量(未压缩)查询时间,单位:秒

  从表1可见,对并行查询支持较好的MS SQL Server和Oracle在数据查询上比其他几种数据库优势明显,分别占据了最短时间中的13项和9项,从总时间看,从短到长分别是Oracle、MS SQL Server、PostgreSQL、MySQL和DB2。


▲表2 各种数据库TPC-H 10GB数据量(压缩)查询时间,单位:秒

  由于PostgreSQL不支持表压缩,因此不在表2中列出,这次Oracle占据了22项查询最短时间中的15项,将MS SQL Server超过,总时间也是唯一一个少于100秒的。Db2的查询时间比未压缩也有所缩短,而MySQL压缩后性能下降太多,大约要用未压缩时6倍的时间。

 

其次,比较数据加载性能


▲表3 各种数据库TPC-H 10GB数据量(未压缩)加载时间,单位:秒

  这次的优胜者是db2,它独有的并行压缩功能将其他数据库远远超过,而其他数据库的导入要么不支持并行,要么需要将原始数据拆分成多个文件才能并行导入,以Oracle为例,如果将8GB的大表lineitem的原始文件拆分成4份,同时启动4个SQLLDR进程,那么时间从8分钟缩短为2分10秒,但从操作便利性上也不如db2。

  第三,比较数据压缩比


▲表4 各种数据库TPC-H 10GB数据量压缩比,单位:未压缩为1

  数据压缩的优胜者也是db2,余下的按压缩比从大到小顺序排列为MySQL,MS SQL Server和Oracle。压缩前的数据大小不同和采用的优化技术有关,Oracle未添加任何索引和约束,其他数据库均添加了主键和外键约束,其中MySQL还自动创建了外键列上的索引。

  第四,综合比较

  从前面各篇评测内容可知,对于Oracle、MS SQL Server、db2、MySQL和PostgreSQL这5种市场上主流的行式数据库,各种数据库的功能基本上都能满足sql 92的标准、也都支持事务处理、完成日常OLTP数据处理的需要,每种数据库都扩充了部分特色功能使得在某一方面的应用更具优势,但商业数据库的综合水平更好一些,特别是性能方面,对于并不是行式数据库的特长的tpc-h测试项目,也都有良好的表现, 可适用于数据分析类应用。db2的情况特殊一些,它的数据装载性能很高,但在同等条件下,查询却落后Oracle和MS
SQL Server较多。MS SQL Server更贴近用户一些,自动根据硬件的配置情况并行处理,Oracle需要用户指定并行参数或者开启自动并行度(DOP)方能执行并行查询。

  开源数据库本身对并行支持较弱,在大规模数据处理方面不强,但依靠一些第三方的工具,比如Greenplum,也有了很多成功的案例,系统的健壮性和稳定性随着历史的发展也取得了长足的进步,成为数据库市场重要的组成部分。

  商业数据库一般都附带了图形界面管理工具,而免费的开源数据库也有相应的工具,Oracle主推基于Web方式的EM,db2是基于java的客户端工具,MS SQL Server则是原生的二进制编译,工具的存在大大降低了记忆命令的要求,提高了管理和开发效率。对于熟练用户,命令行工具有时候更适合远程登录到主机上操作,每种数据库也都提供了功能强大的命令行工具,可以完成交互和批量任务。

  从使用的难易程度来看,Oracle和MS SQL Server易用性较好,初学者较容易入门,而db2、MySQL、PostgreSQL需要更多的时间学习掌握,不过,这对有经验的DBA和开发人员有利,能在市场上获得比Oracle和MS SQL Server DBA更好的待遇。

  从数据库的新功能来讲,比如xml支持,三大商业数据库都支持SQL/XML标准,也就是它们都提供了像XMLELEMENGT,XMLATTRIBUTES等七个函数来支持从数据库中查询出的数据转换成XML格式的数据。Db2强调它是一款支持原生xml处理的数据库,处理的性能较高,其实Oracle的xml功能也不错,可以用来构造动态的SQL,解决一些普通SQL无法解决的问题。MS SQL Server早自 2000版本开始也支持xml,只是用途不如普通的传统数据库功能广泛。MySQL 5.1也引入了对xml的支持,对XML文档进行查询和修改的函数分别是ExtractValue()和UpdateXML(),PostgreSQL
内建了 xml 数据类型,对 XML 处理的函数主要就是 xpath ,它能通过一个xpath 参数,将 XML 文档中相关的信息转换为 PostgreSQL 的 xmlarray 类型。相比商业数据库,功能略少。

 

从每种数据库的特有功能来看, MySQL特有的可插拔式数据存储引擎接口是一个亮点,允许用户根据自己的需要选择特定的存储引擎,数个列式数据库厂商推出了自己的引擎集成到MySQL中,用户也能从中获益,无需修改自己的大部分代码,就可用到与使用新引擎之前完全不同的一种功能,带来某方面性能的大幅度提升。mysql slow log 是用来记录执行时间较长(超过long_query_time秒)的sql的一种日志工具,可以自动记录慢SQL语句,非常有利于DBA监控,比起Oracle数据库要用AWR工具等获取此类信息要方便了不少,当然它记录的信息比较简单。PostgreSQL的开放性带来了许多插件,比如PostGIS,就是一个空间数据库的插件,通过创建PostGIS模板的数据库就可以用到空间数据库的功能。值得深思的是,各种数据库面向对象功能的推出已经时间不短了,但到目前为止,仍没有一个成功的商业案例。

  集群是数据库规模变大时横向扩展的一种手段,Oracle的RAC功能已经相当完善,和硬件绑定的Exadata更是将数据库性能提高到了一个新的高度。MySQL也单独发布MySQL Cluster版本,PostgreSQL集群主要有第三方公司提供,例如Greenplum和EnterpriseDB。

  业界有一个数据库软件和服务器硬件捆绑的趋势,3大商业数据库在这方面都有动作,Oracle最早动手,2009年就和HP公司合作推出Exadata,收购Sun公司后推出使用自家硬件的v2,使用SSD缓存,infiniBand交换机和intelCPU的PC服务器构建的存储服务器和数据库服务器。IBM的Db2
purescale借鉴了大型机上的技术,利用db2 9.8和Power主机结合,数据共享组中的各成员可以通过一个非常有效的 InfiniBand™ 网络直接与 PowerHA pureScale 组件通信,GPFS(IBM General Parallel File System)实现了高度的可伸缩性和可用性,对应用程序是透明的。微软没有公布其SQL Server 2008 R2 并行数据仓库版(Parallel Data Warehouse )的细节,只是宣称支持数百TB的数据量和MPP架构,并从HP获得应用的硬件设备。

  一些额外的功能,各种数据库都有值得提升的地方,比如压缩,MySQL数据库压缩后查询效率下降幅度很大,Oracle则压缩比不高,不过后者已经在Exadata中得到了改善。

  从文档来看,商业数据库也较免费数据库更有优势,资料的分类较多,用户可以方便地获取到自己需要的部分信息,DB2和MS SQL Server在文档本地化方面做得最好,MySQL和PostgreSQL其实在开源数据库界,它们的文档也算是很出色的,不过和商业数据库比较还是稍弱一些。

  下面将各种数据库的功能和性能排名罗列如下,按照在各自测试项目中的表现,分别打1-3分,1分为最优,3分最差。最后加总所有项目的分数,分数越小越好,这里没有考虑价格因素,仅仅是从一个最终用户使用的角度做出的评价。

  读者可以依据自己对不同项目的重视程度赋予不同的权数再加总,以求得自己心目中的优胜者。


▲表5 各种数据库综合评分

  所有的数据库目前都面临着网络时代新的业务模式的挑战,对于web2.0网站来说,存在对数据库高并发读写的需求、对海量数据的高效率存储和访问的需求、对数据库的高可扩展性和高可用性的需求。在上面提到的“三高”需求面前,关系数据库遇到了难以克服的障碍,而关系数据库的很多主要特性却往往无用武之地,例如:数据库事务一致性需求、数据库的写实时性和读实时性需求,因此数据库事务管理成了数据库高负载下一个沉重的负担,对复杂的SQL查询,特别是多表关联查询的需求。由此产生了NoSQL (非关系型数据存储)。它打破了长久以来关系型数据库与
ACID 理论大一统的局面。NoSQL 数据存储不需要固定的表结构,通常也不存在连接 操作。在大数据存取上具备关系型数据库无法比拟的性能优势。虽然它们的应用场景不同,但值得数据库提供商和开发人员关注,以跟上实际应用的步伐。

 

抱歉!评论已关闭.