数据库技术分析及应用.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库技术分析及应用

数据库技术分析及应用 传统数据库的基本架构是 30年前以事务处理为主要应用设计的 ,不能完全满足对海量结构化和非结构化 数据的存储管理、复杂分析、关联查询、实时性处理和控制建设成本等多方面的需要。因此 ,“多种架构 支持多类应用”成为数据库行业应对大数据的基本思路 ,数据库行业出现互为补充的三大阵营 ,适用于事 务处理应用的 OldSQL、适用于数据分析应用的 NewSQL和适用于互联网应用的 NoSQL。 一、OldSQL数据库 OldSQL数据库泛指传统的关系型数据库 ,如Oracle、Sybase、SQLServer、 DB2、MySQL、PostgreSQL等 ,以结构化数据为处理对象 ,提供实时的、面 向应用的事务处理能力 ,支持标准 SQL或 PL/SQL。 图 1 OldSQL数据库 SMP架构 OldSQL数据库采用 SMP(Symmetric Multi-Processing )对称多处理架 构 ,汇聚多个服务器的一组 CPU处理器 ,各 CPU之间共享内存、总线和存储。 可以通过增加 CPU、内存来提高性能 ,进行 Scale up 的纵向扩展 ,但由于是共 享存储 IO带宽有限 ,无法大规模扩展 ,适合数据量在数十 TB的应用场景。 二、NewSQL数据库 NewSQL泛指各种新的可扩展、高性能关系型数据库 ,这类数据库不仅具 有对海量结构化数据的存储管理能力 ,还保持了传统数据库支持 ACID和 SQL 等特性。 图2 NewSQL数据库 Share-nothing架构 NewSQL数据库工作在一个分布式集群的节点上 ,采用本地存储 (Share-nothing ),每个节点拥有一个数据子集。NewSQL有一组节点用来 做事务处理 ,这些节点接到特定的 SQL查询后 ,会把它所需的数据从本地取回 来后执行 SQL查询 ,再返回结果。 与 OldSQL数据库共享存储相比 ,NewSQL数据库采用本地存储 ,无共享 存储 I/O 限制 ,可以通过添加节点来 Scale out 横向扩展 ,节点数量可以达到数 百台 ,数据量可以达到 PB级。 NewSQL系统虽然在的内部结构变化很大 ,但是它们有两个显着的共同特 点 :(1)它们都支持关系数据模型 ;(2) 它们都使用 SQL作为其主要的接口。 NewSQL数据库有 2种存储方式 ,即行存储和列存储。 图 3 存储方式 行存储和列存储方式是指数据在磁盘中按照行或者列的方式进行组织和物 理存储。行存储架构和列存储架构的数据库分别适用于不同的应用场景 ,具备各 自的优劣势。 ·行存储 行存储数据库适合增加、插入、删除、修改的事务处理处理等。以 “修改” 为例 ,数据库先把需要修改的指定记录从硬盘读取到内存 ,对记录进行修改 ,然 后再从内存保持回到硬盘。由于只需要对指定的记录读取到内存和写入硬盘操 作 ,所以I/O最小 ,效率最高。 但是 ,行存数据库对列的统计分析却需要耗费大量的I/O。对指定列进行统 计分析时 ,需要把整张表读取到内存 ,然后再逐行对列进行读取分析操作。因此 , 表结构越大 ,I/O效率越低。 ·列存储 列存储数据库对增加、插入、删除、修改的事务处理 I/O高、效率低 ,以 “修改”为例 ,列存数据库先把需要修改表的所有列数据从硬盘读取到内存组合 成完整的表 ,然后对指定行记录进行修改 ,再按照列的方式保存回到硬盘。因此 , 表结构越大 ,I/O效率越低。 但是列存储非常适合做统计查询类操作 ,统计分析一般是针对指定列进行 , 只需要把指定列读取到内存进行操作 ,所以I/O最小 ,效率最高。 列存储还具备建立索引来优化统计查询性能。每个数据包在加载数据时自 动建立索引 ,索引是对每个列存数据包的描述 ,包含基本的统计信息 ,如 :最大 值、最小值、平均值等 ,在数据查询时只需要解包就能得到统计值 ,可进一步降 低 I/O ,对复杂查询的优化效果明显。索引本身占空间很少 ,扩展性很好 ,建立 索引后无膨胀。建立索引的速度快 ,后续的数据包建立索引的速度不会受到前面 数据包的影响。 图4 列存索引 列存储能够进行数据压

文档评论(0)

wujianz + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档