- 1、本文档共62页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
我们聊聊数据库吧
我们聊聊数据库吧;如今,我们要面对和使用的数据正在变得越来越庞大和复杂。
如果说数据是新的石油。
那么数据库就是油田、炼油厂、钻井和油泵。
作为一名现代的软件开发者,我们需要了解数据管理的新领域,
既包括RDBMS(Relational Database Management System),
也包括NoSQL。;我们正处在数据存储选择的寒武纪大爆炸之中,很难准确预测未来会如何发展。但我们可以相当肯定,任何一种特定策略(关系型或其他)都不大可能大获全胜。
相反,我们将看到越来越多的专用数据库,每种适合一组特定(但肯定有重叠)的理想问题。
今天有一些工作需要关系数据库的专业知识(DBA),同样,我们会看到对应的非关系领域的增长。
与编程语言和程序库一样,数据库是另一套工具,每个开发人员都应知道数据库。
每一个好木匠必须了解他的工具箱里有什么。就像所有好的建筑师一样,如果你不熟悉可供你使用的多种选择,就不会成为一名大师。;大数据时代
关系数据库的瓶颈
NoSQL的优势
CAP理论
NoSQL数据模型及分类
NoSQL应用现状
重点介绍几个NoSQL
; 随着网民参与互联网产品和应用的程度越来越深,互联网将更加智能,互联网的数据量也将呈爆炸式增长
;大交易数据:来自电商的数据,包括B2B、B2C、C2C、团购等
大交互数据:来自社交网络的数据,SNS、微博等
两类数据的有效融合将是大势所趋,这种融合更能增强企业的商业洞察力
;大数据的特征
3V——Volume(海量)、Variety(多样)、Velocity(实时)
海量——数据量巨大,对TB、PB数据级的处理, 已经成为基本配置。
多样——处理多样性的数据类型,结构化数据和非结构化数据,能处理Web数据,能处理语音数据甚至是图像、视频数据。
实时——在客户每次浏览页面,每次下订单的过程中都存在,都会需要对用户进行实时的推荐,决策已经变得实时
;大数据时代下的系统需求
High performance –高并发读写的需求
高并发、实时动态获取和更新数据
Huge Storage –海量数据的高效率存储和访问的需求
类似SNS网站,海量用户信息的高效率实时存储和查询
High Scalability High Availability –高可扩展性和高可用性的需求
需要拥有快速横向扩展能力、提供7*24小时不间断服务;关系数据库如何应对大数据
High performance –高并发读写的需求
问题:
数据库读写压力巨大,
硬盘IO无法承受
解决方案:
Master-Slave,主从分离
分库、分表,缓解写压力,增强读库的可扩展性
;关系数据库如何应对大数据
Huge Storage –海量数据的高效率存储和访问的需求
问题:
存储记录数量有限,
SQL查询效率极低
解决方案:
分库、分表,缓解数据增长压力
;关系数据库如何应对大数据
High Scalability High Availability –高可扩展性和高可用性的需求
问题:
横向扩展艰难,无法通过快速增加服务器节点实现,
系统升级和维护造成服务不可用
解决方案:
Master-Slave,增强读库的可扩展性
MMM——Master -Master Replication Manager for MySQL;解决方案的问题
1.分库分表缺点:
(1)受业务规则影响,需求变动导致分库分表的维护复杂
(2)系统数据访问层代码需要修改
2. Master-Slave缺点
(1)Slave实时性的保障,对于实时性很高的场合可能需要做一些处理
(2)高可用性问题,Master就是那个致命点,容易产生单点故障
3. MMM缺点
本身扩展性差,一次只能一个Master可以写入,只能解决有限数据量下的可用性
;关系数据库如何应对大数据
MMM架构
;二、但是,Shard ≠ 架构设计;二、Sharding framework;二、Sharding framework;二、框架之路也失败了,为什么?;
易扩展
NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。也无形之间,在架构的层面上带来了可扩展的能力。甚至有多种NoSQL之间的整合。
灵活的数据模型
NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦。
;
高可用
NoSQL在不太影响性能的情况,就可以方便的实现高可用的架构。比如Cassandra,HBase模型,通过复制模型也能实现高可用。
大数据量,高性能
文档评论(0)