没有合适的资源?快使用搜索试试~ 我知道了~
mysql海量数据的存储和访问解决方案归类.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 43 浏览量
2021-11-22
12:04:42
上传
评论
收藏 98KB PDF 举报
温馨提示
试读
6页
mysql海量数据的存储和访问解决方案归类.pdf
资源推荐
资源详情
资源评论
mysql 海量数据的存储和访问解决方案
第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 不是一门新技术,而是一个相
对简朴的软件理念。众所周知, MySQL 5 之后才有了数据表分区功能,那么在此之前,很多
MySQL 的潜在用户都对 MySQL 的扩展性有所顾虑,而是否具备分区功能就成了衡量一个数
据库可扩展性与否的一个关键指标 (当然不是唯一指标 )。数据库扩展性是一个永恒的话题,
MySQL 的推广者经常会被问到:如在单一数据库上处理应用数据捉襟见肘而需要进行分区化
之类的处理,是如何办到的呢 ? 答案是: Sharding。 Sharding 不是一个某个特定数据库软件
附属的功能,而是在具体技术细节之上的抽象处理,是水平扩展 (Scale Out,亦或横向扩展、
向外扩展 )的解决方案,其主要目的是为突破单节点数据库服务器的 I/O 能力限制,解决数据
库扩展性问题。
通过一系列的切分规则将数据水平分布到不同的 DB 或 table 中,在通过相应的 DB路由 或者
table 路由规则找到需要查询的具体的 DB 或者 table,以进行 Query 操作。这里所说的
“ sharding ”通常是指 “水平切分 ”, 这也是本文讨论的重点。具体将有什么样的切分方式呢和
路由方式呢?行文至此,读者难免有所疑问,接下来举个简单的例子:我们针对一个 Blog 应
用中的日志来说明,比如日志文章( article)表有如下字段:
article_id(int),title(varchar(128)),content(varchar(1024)),user_id(int)
面对这样的一个表,我们怎样切分呢?怎样将这样的数据分布到不同的数据库中的表中去呢?
其实分析 blog 的应用,我们不难得出这样的结论: blog 的应用中,用户分为两种:浏览者和
blog 的主人。浏览者浏览某个 blog,实际上是在一个特定的用户的 blog 下进行浏览的,而
blog 的主人管理自己的 blog,也同样是在特定的用户 blog 下进行操作的(在自己的空间
资源评论
ll17770603473
- 粉丝: 0
- 资源: 6万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功