1.需求:
海量数据的存储和访问成为了系统设计的瓶颈问题。
2.实际环境:
对于一个大型的互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。
3.解决方案:
通过 数据切分来提高网站性能,横向扩展数据层实现了分布式数据访问层(DDAL) 已经成为架构研发人员首选的方式。
水平切分数据库 可以降低单台机器的负载,同时最大限度的降低了了宕机造成的损失。
负载均衡策略 有效的降低了单台机器的访问负载,降低了宕机的可能性;
集群方案 解决了数据库宕机带来的单点数据库不能访问的问题;
读写分离策略 最大限度了提高了应用中读取(Read)数据的速度和并发量。
4.分布式数据访问层(DDAL) - JDBC层 和 ORM层
ORM - 对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”。如:Hibernate,ibatis
5.什么(what)是数据切分
通过一系列的切分规则将数据水平分布到不同的DB或table中,在通过相应的DB路由 或者 table路由规则找到需要查询的具体的DB或者table,以进行Query操作。
6.为什么(why)数据切分
●oracle 支持海量数据查询与存储,但价格昂贵。mysql免费,通过对mysql实现sharding(碎片)理念,来支持海量数据的查询与存储。
●只通过Replication机制来提高读写的吞吐和性能存在一定缺陷:它的有效很依赖于读操作的比例,Master往往会成为瓶颈所在,写操作需要顺序排队来执行,过载的话Master首先扛不住,Slaves的数据同步的延迟也可能比较大,而且会大大耗费CPU的计算能力,因为write操作在Master上执行以后还是需要在每台slave机器上都跑一次。
●Sharding可以轻松的将计算,存储,I/O并行分发到多台机器上,这样可以充分利用多台机器各种处理能力,同时可以避免单点失败,提供系统的可用性,进行很好的错误隔离。
综合以上因素,数据切分是很有必要的
7.怎么(how)数据切分
数据切分可以是物理 上的,对数据通过一系列的切分规则将数据分布到不同的DB服务器上,通过路由规则路由访问特定的数据库,这样一来每次访问面对的就不是单台服务器了,而是N台服务器,这样就可以降低单台机器的负载压力。
对数据通过一系列的切分规则,将数据分布到一个数据库的不同表中,比如将article分为article_001,article_002等子表,若干个子表水平拼合有组成了逻辑上一个完整的article表,这样做的目的其实也是很简单的。提高了数据操作的效率,尤其是Write操作的效率。
8.分布式数据方案提供功能
(1)提供分库规则和路由规则(RouteRule简称RR),将上面的说明中提到的三中切分规则直接内嵌入本系统,具体的嵌入方式在接下来的内容中进行详细的说明和论述;
(2)引入集群(Group)的概念,保证数据的高可用性;
(3)引入负载均衡策略(LoadBalancePolicy简称LB);
(4)引入集群节点可用性探测机制,对单点机器的可用性进行定时的侦测,以保证LB策略的正确实施,以确保系统的高度稳定性;
(5)引入读/写分离,提高数据的查询速度;
来自: http://www.jb51.net/article/23345.htm
Replication: http://www.cnblogs.com/hustcat/archive/2009/12/19/1627525.html
相关推荐
总的来说,MySQL海量数据存储和解决方案的分布式DB方案,旨在通过数据切分、集群、读写分离等技术,解决大规模数据处理的挑战,提升系统的可用性和扩展性,以适应快速发展的互联网应用需求。在实施这些方案时,需要...
MySQL 海量数据的存储和访问解决方案宣贯 MySQL 海量数据的存储和访问解决方案宣贯是当前互联网应用中一个非常重要的课题。随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个...
- OBS提供基于对象的海量存储,是安全、高可靠且低成本的存储解决方案。 11. **数据库维护**: - 表碎片化率可以通过多种方式查看,如云DBA的“空间”功能、`information_schema.TABLES`和`SHOW TABLE STATUS ...
无论是对于传统的IT企业还是新兴的互联网公司来说,这样的实时数据仓库解决方案都具有极高的实用价值和应用前景。此外,通过DTS、SLS和DMS等工具的配合使用,可以构建一个更加完善、高效的实时数据分析体系。
Hive 通常用于存储海量数据并进行批处理分析,而 MySQL 则用于存储结构化数据并提供快速查询服务。为了实现两者之间的数据交换,DataX 作为一种开源的数据同步工具被广泛应用。 #### 问题描述 在使用 DataX 将数据...
总结来说,《AnalyticDB for MySQL基础版技术解密》揭示了这款产品如何通过技术创新提升大数据处理性能,降低运维成本,并且为企业提供高效、灵活的实时数据仓库解决方案。对于依赖大数据分析的企业来说,AnalyticDB...
**大数据采集技术与MySQL简介** ...无论是小型网站还是大型企业,MySQL都提供了可靠的数据存储和处理解决方案。对于那些寻求在大数据领域深入发展的人来说,掌握MySQL的使用和优化是必不可少的技能。
AnalyticDB for MySQL基础版作为一款轻量级、高性能的云原生实时数据仓库解决方案,为用户提供了一种全新的数据管理和分析方式。本文将围绕其技术架构进行深入剖析,旨在揭示该产品如何通过技术创新实现数据处理领域...
云原生分布式数据库PolarDB-X是阿里云推出的一款创新性数据库服务,旨在为企业级客户提供高性能、高可用、易扩展的数据存储解决方案。该产品基于阿里云专有云企业版V3.12.0,融合了云计算的弹性伸缩能力与分布式...
这个库专注于提供高效、便捷的数据存储和检索解决方案,对于需要处理数据的Python项目来说,是一个非常有价值的工具。 一、`labml_db`概述 `labml_db`是一个专为实验数据设计的数据库库,它简化了数据存储、组织和...
总的来说,阿里云专有云企业版 V3.12.0 云原生分布式数据库 PolarDB-X是针对大型企业设计的高性能数据库解决方案,具备云原生的灵活性、分布式计算的扩展性和存储分离的高效性,提供了一整套管理和使用指南,旨在...
在IT行业中,数据库是存储和管理数据的核心工具,尤其在大数据时代,面对海量的数据,传统的数据库解决方案往往力不从心。"海量数据库解决方案"这一主题,涵盖了如何有效地处理大规模数据的存储、查询、分析和管理等...
### MySQL大数据分库和分表PHP解决方案 #### 一、引言 随着互联网技术的快速发展,数据量呈现出爆炸性增长的趋势。在这种背景下,单一数据库往往难以承受巨大的数据处理压力,因此,采用分库分表技术成为了提高...
### 存储问题解决方案 #### 一、对象存储 **对象存储**是一种广泛应用于云环境中的数据存储方式,尤其适合处理非结构化的海量数据。它通过扁平化的数据组织方式,将数据作为独立的对象存储,并附加元数据进行索引...
基于数据库原理的项目设计:"数据宝藏探索者" 项目名称:DBExplorer - 数据智能检索系统 ...适用于企业数据分析、市场研究、教育培训等多个领域,无论是日常运营监控还是深度数据挖掘,都能提供优质解决方案
3. 数据存储:该系统使用HDFS、Hive和MySQL等多种数据存储系统来存储海量数据,提供了高效的数据存储和查询能力。 4. 数据 Integration:该系统使用DataX、Sqoop和DB工具来实现数据Integration,能够集成多种数据源...
### Mycat+Mysql实现数据分片存储高可用集群 #### 概述 在当前大数据时代背景下,单一数据库系统的性能瓶颈越来越明显,特别是在面对海量数据处理时,传统的单机数据库难以满足需求。为了应对这一挑战,数据分片...
AnalyticDB MySQL版是阿里云推出的一种高性能、全托管的实时大数据分析服务,它基于MySQL协议,支持海量数据的实时处理和分析。 1. **产品介绍** AnalyticDB MySQL版是专为大数据分析设计的云数据库服务,具备高...