数据库分库技巧.pdfVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2009-07-03 数据库水平切分的实现原理解析---分库,分表,主从,集群,负载 均衡器 关键字 : 水平切分,分库,分表,主从,集群 第 1 章 引言 随着互联网应用的广泛普及, 海量数据的存储和访问成为了系统设计的瓶颈 问题。对于一个大型的互联网应用,每天几十亿的 PV无疑对数据库造成了相当 高的负载。 对于系统的稳定性和扩展性造成了极大的问题。 通过数据切分来提高 网站性能,横向扩展数据层已经成为架构研发人员首选的方式。 水平切分数据库, 可以降低单台机器的负载, 同时最大限度的降低了了宕机造成的损失。 通过负载 均衡策略, 有效的降低了单台机器的访问负载, 降低了宕机的可能性; 通过集群 方案,解决了数据库宕机带来的单点数据库不能访问的问题; 通过读写分离策略 更是最大限度了提高了应用中读取 (Read)数据的速度和并发量。 目前国内的大 型互联网应用中,大量的采用了这样的数据切分方案, Taobao,Alibaba,Tencent , 它们大都实现了自己的分布式数据访问层 (DDAL)。以实现方式和实现的层次来 划分,大概分为两个层次( Java 应用为例): JDBC层的封装, ORM框架层的实 现。就 JDBC层的直接封装而言,现在国内发展较好的一个项目是被称作“变形 虫”(Amoeba)的项目, 由阿里集团的研究院开发, 现在仍然处于测试阶段 (beta 版),其运行效率和生产时效性有待考究。 就 ORM框架层的实现而言, 比如 Taobao 的基于 ibatis 和 Spring 的的分布式数据访问层, 已有多年的应用, 运行效率和 生产实效性得到了开发人员和用户的肯定。 本文就是以 ORM框架层为基础而实现 的分布式数据访问层。 本课题的难点在于分库后, 路由规则的制定和选择以及后 期的扩展性, 比如:如何做到用最少的数据迁移量, 达到扩充数据库容量 (增加 机器节点) 的目的。核心问题将围绕数据库分库分表的路由规则和负载均衡策略 展开。 第 2 章 基本原理和概念 2.1 基本原理: 人类认知问题的过程总是这样的: what (什么)-?why( 为什么 )-?how( 怎么 做) ,接下来,本文将就这三个问题展开讨论和研究: 2.1.1 什么是数据切分 "Shard" 这个词英文的意思是 " 碎片 " ,而作为数据库相关的技术用语, 似乎 最早见于大型多人在线角色扮演游戏中。 "Sharding" 姑且称之为 " 分片 " 。 Sharding 不是一门新技术,而是一个相对简朴的软件理念。众所周知, MySQL5 之后才有了数据表分区功能, 那么在此之前,很多 MySQL 的潜在用户都对 MySQL 的扩展性有所顾虑, 而是否具备分区功能就成了衡量一个数据库可扩展性与否的 一个关键指标 ( 当然不是唯一指标 ) 。数据库扩展性是一个永恒的话题, MySQL的 推广者经常会被问到: 如在单一数据库上处理应用数据捉襟见肘而需要进行分区 化之类的处理,是如何办到的呢 ? 答案是: Sharding 。 Sharding 不是一个某 个特定数据库软件附属的功能, 而是在具体技术细节之上的抽象处理,

文档评论(0)

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

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

1亿VIP精品文档

相关文档