开源数据库的预研报告(一)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
开源数据库的预研报告
(一)
1概述 (3)
1.1开源数据库与商业数据库 (3)
1.2开源数据库情况 (4)
1.3相关知识 (5)
2两开源数据库的比较 (5)
2.1基本情况 (6)
2.2SQL语法与oracle比较 (9)
2.2.1类型 (10)
2.2.2语法和函数 (12)
2.2.3数据库连接 (13)
2.2.4开发常用语法 (14)
3Windows下的安装 (15)
3.1数据库安装 (15)
3.1.1MariaDB (15)
3.1.2PostgreSQL (20)
3.2客服端安装 (25)
3.2.1MariaDB (25)
3.2.2PostgreSQL (26)
4研究结论 (27)
4.1数据库选型角度 (27)
4.2数据库移植开发角度 (28)
1概述
1.1开源数据库与商业数据库
开源数据库与商业数据库之差异如下:
1、性能方面差距在30%以内,经验丰富的开源库DBA可以让
差距变得越来越少,使的开源数据库的性能逼近商业数据
库。开源数据库性能低于商业数据库的原因是,商业数据库
有商业团队为性能优化服务,提供优化的解决方案。开源数
据数据库只能依赖开源社区的贡献和DBA本人的经验。在项
目中数据库的环境是千差万别的,能被完全复制的调优方案
是不多见的。
2、操作简便方面,尽管目前开源数据库与商业数据在安装方
面都做到了非常简单,特别在windows操作系统下,基本上
用鼠标点点就可以完成安装。但在数据库维护方面,用工具
操作数据库的自动化方面,开源数据库与商业数据库比还是
有差距的。这可能是因为开源数据库一般情况下不是一个完
整的应用解决方案,要形成一套完整的方案一般都需要第三
方系统和工具的支撑,所以第三方企业或个人贡献的产品也
都是基于其自身的场景开发的。
3、操作系统方面,虽然开源与商业数据库都支持windows操
作系统安装,但开源数据库大部分插件、高性能和高可靠工
具和方案基本上是在开源操作系统上完成,如果选择开源数
据库那么主体方案的操作系统就需要选用Linux开源操作系
统更为适合。
4、数据库系统版本方面,开源数据库系统版本的延续性是比
较差的,上下两个版本之间功能差异可能非常大,不同版本
之间做集群,在开源数据库也是非常忌讳的。
总而言之,开源数据库是一个需要大家去研究探索的数据库,而商业数据库是一个需要大家投入更多时间去学习掌握的数据库。1.2开源数据库情况
在当前信息技术领域中,开放数据库分为关系型数据库和非关系型数据库。开源关系数据库种类也非常多,国外和国内都有,在开源方面做的比较全面的数据库主要有MySQL和PostgreSQL。MySQL被公认为是最流行的开源关系型数据库。PostgreSQL被公认为是最先进的开源关系型数据库,是oracle的“开源版数据库”。MySQL被oracle 收购后增加了两个主要的开源的分支,一个是MariaDB,由MySQL的创始人Michael Widenius主导开发,特点主要是在MySQL数据库方面进行改进;另一个PerconaDB,由原为MySQL开发存储引擎的人员组织开发,主要负责数据引擎开发如XtraDB退换innoDB,推出Percona Server数据库。所以后面开源数据库的比较中,只对MySQL 和PostgreSQL比较,因为MySQL与其分支功能区别不大。
1.3相关知识
MySQL和PostgreSQL相关学习资料:
2两开源数据库的比较
MySQL和PostgreSQL都是开源关系型数据库管理系统,两者的解决方案都在商业和非商业应用系统中应用,MySQL多用于网站开发,PostgreSQL银行业、金融行业应用比较多,都被认为是商业数据库管理系统有力的竞争对手。MySQL被认为是速度最快的最流行的数据库系统,PostgreSQL被认为是稳定的、最遵循标准的最先进的数据
库系统;MySQL由于他的快速和使用简单,在软件系统应用中比较流行;PostgreSQL主要开发者都有oracle和SQL Server的背景,功能比较突出。MySQL和PostgreSQL版本在不断发生变化,MySQL功能越来越先进,PostgreSQL的速度也在大大的提高。本文使用MySQL5.7和PostgreSQL9.4,目前来说都是比较新的版本。
2.1基本情况
下有较高的性能优势,但在大并发多核下又有性能的弱势在单机模式下性能比MySQL差。
存储非常多的存储引擎,核心
特性依赖存储引擎,不同
存储引擎有自身的特色
MyISAM(ariaDB)、
InnoDB(XtraDB)
内置一个存储引擎
复制和高可用支持异步和半同步的复
制方法,复制功能内置,
多种集群模式,开源的集
群软件比较少支持异步、半同步和完全同步复制、支持流复制,内置复制功能,丰富的三方集群工具
事务系统有REDO日志,数据操作
时,要在数据库和回滚段
中记录数据,在REDO日
志中记录操作信息,做到
新版本与就版本分离,不
要清理垃圾,查询只需要
扫描索引,速度快没有REDO,不应为回滚段破坏导致数据库不能重启,回滚可以快速完成,wal日志比较简单
连接线程模式,单机可以支持
非常多的连接进程模式,单机支持的连接数比较少,需