数据库技术对比_第1页
数据库技术对比_第2页
数据库技术对比_第3页
数据库技术对比_第4页
数据库技术对比_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库技术对比神州数码融信软件有限公司目录TOC\o"1-5"\h\z\o"CurrentDocument"数据库分类 3\o"CurrentDocument"关系型数据库 3非关系型数据库(NOSQL) 4\o"CurrentDocument"两者之间的关系 6\o"CurrentDocument"分布式数据库 6\o"CurrentDocument"如何看待MYSQL 73.1 使用\o"CurrentDocument"MYSQL的一些顾虑 8\o"CurrentDocument"Mysql的版本选择 8\o"CurrentDocument"建议推进过程 91数据库分类Oracle商用~;DR2SQLServerPercanaPostgreSQLCouchDBmysql-;'制启|Oracle商用~;DR2SQLServerPercanaPostgreSQLCouchDBmysql-;'制启|■诒DR梦个分支DrizzlememcachedMongoDb匚assandra'■列式存储_ HB^seI ' Neo4J圉形数据库-厂InfoGrid1.1关系型数据库关系型数据库把所有的数据都通过行和列的二元表现形式表示出来,也是我们使用最广泛的一种数据存储方式。优势:保持数据的一致性(事务处理)由于以标准化为前提,数据更新的开销很小3.可以进行Join等复杂查询其中能够保持数据的一致性是关系型数据库的最大优势不足:大量数据的写入处理为有数据更新的表做索引或表结构(schema)变更字段不固定时应用对简单查询需要快速返回结果的处理1・2非关系型数据库(NOSQL)关系型数据库应用广泛,能进行事务处理和表连接等复杂查询。相对地,NoSQL数据库只应用在特定领域,基本上不进行复杂的处理,但它恰恰弥补了之前所列举的关系型数据库的不足之处。NOSQL的主要特点就是易于数据的分散处理。各个数据之间存在关联是关系型数据库得名的主要原因,为了进行join处理,关系型数据库不得不把数据存储在同一个服务器内,这不利于数据的分散,这也是关系型数据库并不擅长大数据量的写入处理的原因。相反NoSQL数据库原本就不支持Join处理,各个数据都是独立设计的,很容易把数据分散在多个服务器上,故减少了每个服务器上的数据量,即使要处理大量数据的写入,也变得更加容易,数据的读入操作当然也同样容易。优势:简单的扩展:典型例子是Cassandra,由于其架构是类似于经典的P2P,所以能通过轻松地添加新的节点来扩展这个集群;快速的读写:主要例子有Redis,由于其逻辑简单,而且纯内存操作,使得其性能非常出色,单节点每秒可以处理超过10万次读写操作;低廉的成本:这是大多数分布式数据库共有的特点,因为主要都是开源软件,没有昂贵的License成本。不足:不提供对SQL的支持:如果不支持SQL这样的工业标准,将会对用户产生一定的学习和应用迁移成本;支持的特性不够丰富:现有产品所提供的功能都比较有限,大多数NoSQL数据库都不支持事务,也不像MSSQLServer和Oracle那样能提供各种附加功能,比如BI和报表等;

现有产品的不够成熟:大多数产品都还处于初创期,和关系型数据库几十年的完善不可同日而语。1.2.1典型的NOSQL数据库分类对应产品典型应用场景数据模型优点缺点键值(key-value)Redis,Mamcached内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等等。Key指向Value的键值对,通常用hashtable来实现查找速度快数据无结构化,通常只被当作字符串或者二进制数据列存储数据库Cassandra,HBase,Riak分布式的文件系统以列簇式存储,将同一列数据存在一起查找速度快,可扩展性强,更容易进行分布式扩展功能相对局限文档型数据库CouchDB,MongoDbWeb应用(与Key-Value类似,Value是结构化的,不同的是数据库能够了解Value的内容)Key-Value对应的键值对,Value为结构化数据数据结构要求不严格,表结构可变,不需要像关系型数据库一样需要预先定义表结构查询性能不高,而且缺乏统一的查询语法。图形数据库Neo4J,InfoGrid社交网络,推荐系统等。专注于构建关系图谱图结构利用图结构相关算法。比如最短路径寻址,N度关系查找等很多时候需要对整个图做计算才能得出需要的信息,而且这种结构不太好做分布式的集群方案。1.2.2共同特点虽然从种类上可以分为上述四类,但他们都普遍存在下面一些共同特征:•不需要预定义模式:不需要事先定义数据模式,预定义表结构。数据中的每条记录都可能有不同的属性和格式。当插入数据时,并不需要预先定义它们的模式。•无共享架构:相对于将所有数据存储的存储区域网络中的全共享架构。NoSQL往往将数据划分后存储在各个本地服务器上。因为从本地磁盘读取数据的性能往往好于通过网络传输读取数据的性能,从而提高了系统的性能。•弹,性可扩展:可以在系统运行的时候,动态增加或者删除结点。不需要停机维护,数据可以自动迁移。分区:相对于将数据存放于同一个节点,NoSQL数据库需要将数据进行分区,将记录分散在多个节点上面。并且通常分区的同时还要做复制。这样既提高了并行性能,又能保证没有单点失效的问题。•异步复制:和RAID存储系统不同的是,NoSQL中的复制,往往是基于日志的异步复制。这样,数据就可以尽快地写入一个节点,而不会被网络传输引起迟延。缺点是并不总是能保证一致性,这样的方式在出现故障的时候,可能会丢失少量的数据。BASE:相对于事务严格的ACID特性,NoSQL数据库保证的是BASE特性。BASE是最终一致性和软事务。NoSQL数据库并没有一个统一的架构,两种NoSQL数据库之间的不同,甚至远远超过两种关系型数据库的不同。可以说,NoSQL各有所长,成功的NoSQL必然特别适用于某些场合或者某些应用,在这些场合中会远远胜过关系型数据库和其他的NoSQL。1.3两者之间的关系关系型数据库与NoSQL数据库并非对立而是互补的关系,即通常情况下使用关系型数据库,在适合使用NoSQL的时候使用NoSQL数据库,让NoSQL数据库对关系型数据库的不足进行弥补。具体到银行中的应用,针对核心业务或者是对事务一致性要求高的业务,肯定优先选择关系型数据库,然后对一些大数据量(例如:交易流水、用户行为数据)的处理及图片影像等非结构化数据建议使用NOSQL进行处理。2分布式数据库分布式数据库是从另外一个维度来看待数据库的,跟其对应的应该是集中式数据库,其更多的是一种处理大数据量及高并发的的理念,其核心思想就是将传统的集中式数据库中的数据从某个视角进行切分,将数据分散到多个分库中存储及访问,所有的分库共同组成了一个逻辑上的数据库。其相对于集中式数据库而言具有如下一些特点:•更高的访问速度:分布式数据库为了保证数据的高可靠性,往往采用备份的策略实现容错,所以,在读取数据的时候,客户端可以并发地从多个备份服务器同时读取,从而提高了数据访问速度。更强的可扩展性:分布式数据库可以通过增添存储节点来实现存储容量的线性扩展,而集中式数据库的可扩展性十分有限。更高的并发访问量:分布式数据库由于采用多台主机组成存储集群,所以相对集中式数据库,它可以提供更高的用户并发访问量。上述提到的关系型数据库中不足中就包括一个大量数据的读写操作,如果通过分布式的思路就可以解决关系型数据库的这个不足。对于关系型数据库的数据进行垂直和水平切分是解决关系型数据库大数据量的常用手段,对于数据水平切分而言,使用的具体技术包括:分区、分表、分库,这三种技术其实思路类似,其中分库技术就是分布式处理的思路,其对系统资源的使用已经突破单台机器的限制,更能够充分的提升数据处理的能力。但同样分布式也带来了更多的技术复杂性,最典型的几个问题包括:数据的分布式路由规则、分布式事务、节点的扩容以及跨节点的查询等,并且这几个问题的解决对技术的要求都比较高,同时分布式数据库对运维也提出了更高的要求。3如何看待Mysql首先Mysql属于关系型数据库,也可以基于其组成分布式数据库,为什么提到mysql,更多的是基于成本的考虑,对于商业的关系型数据库在提供高稳定性等的数据体验下,其的费用也是非常客观的(阿里就是一个活生生的例子)。mysql现在已经在互联网中的web应用中广泛应用,但到底其是否可以在银行的一些关键的应用中使用,是需要综合考虑。3.1使用mysql的一些顾虑Mysql会丢数据吗(数据库宕掉、服务器宕掉、硬盘坏掉)Mysql容灾快速切换方案3.Mysql的性能如何4.Mysql开源软件自身的稳定性如何5.Mysql备库同步延时如何解决6.Mysql主备库数据的一致性校验相比商业软件成熟的解决方案,mysql+pc架构其高可用性如何解决Mysql的功能是否完备如果系统的重要性不是很高,当然用mysql是没有问题的,但如果对数据的可靠性及故障下的快速恢复有比较高的要求,上述的一些问题有些是必须要面对的,例如:如何避免特殊情况下丢数据,备份的延迟等,都需要有针对性的方案支撑。首先这些问题都是有解的,主要要看科技部门在这方面的投入,这些投入短期的回报不是很明显,但长期肯定会比采用商用数据库在成本上要省很多。3.2Mysql的版本选择MySQL开源数据库有多个重要分支,目前拥有的分支分别为:MySQLCluster、MySQL5.1、MySQL5.5、MySQL6.2。每个分支都有着同样的MySQL数据库版本,分别为:Development版本、Alpha版本、Beta版本、RC版本和GA版本。Development版本、Alpha版本和Beta版本一般不用在项目中。因为它们肯定存在重大的问题或某些功能未完全实现。绝大多数情况下RC版本也不允许使用在生产环境中,毕竟它只是生产版本发布之前的一个小版本。同样,对MySQL数据库的GA版本,我们也要慎重选择。开源社区产品毕竟没有经过严格的测试,可能存在比商业产品稳定性弱等缺陷。自Oracle收购SUN及其全资子公司MySQLAB之后,MySQLAB官方不再对开源社区贡献源码。同时,随着众多创始人与技术人员的出走,大家对于MySQLAB公司推出的新版本一定要精挑细选,切莫盲目相信MySQLAB官方给出的测试报告。推荐大家参考以下MySQL数据库GA版本选择的流程,如下所述:分析业务是否需要使用到MySQL的那些基本功能和特性,特性重点研究方向为:MySQL复制、分区表、Plugin-innodb等。MySQL数据库产品线第一个GA版本推出时间,至少要超过10个月,再考虑使用到生产环境中去。MySQL数据库产品线的最新GA版本,一般不要作为首选目标,可考虑比最新版本晚3~4个版本的GA版本数据库。仔细阅读目标数据库GA版本的信息,若是在之前的版本的基础上修改了大量的BUG,则此GA版本慎重选择。仔细阅读目标数据库GA版本之后的第一个版本的信息,若是修改的BUG信息量非常大,请直接放弃目标版本,向前推进一个版本号作为目标版本。按照第四、第五步骤所描述的办法来选择,直到选定的版本之后的一个版本,BUG修改量不大,严重BUG极少,并且不是最新的GA版本详细阅读选定的数据库GA版本之后2〜3个版本的BUG修复信息,主要是跟目标GA版本相关的,并且想办法重现,以及寻找规避的办法。对经过上述七个步骤挑

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论