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方案.docx
MySQL官方测试数据集 test_db-master.zip 最多百万级测试数据。github下载地址:https://github.com/datacharmer/test_db。网好的去github下载。
OLEDB驱动程序大全 MySQL-OleDB-Provider
JAVADB-MYSQL 这是myeclipse的通讯录,谢谢大家的支持。
mysql event scheduler 使用详解,含全局设置、创建event、修改event、删除event及相应的example,测试环境 mysql ver 14.14 distrib 5.7.26
Laravel开发-dynamic-mysql-db-backup 动态保存MySQL转储到您的特定存储
2019云栖大会-AnalyticDB-快数据时代的实时数据仓库技术内幕,一起来学习阿里巴巴PB级数据处理机制
MySQL-Connector-Java-5.1.39.tar
创建mysql组及用户 Java代码 1. groupadd mysql ...4. scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mys ql/data 5. chown -R root . 6. chown -R mysql data
数据迁移工具,包含DB2DB、mysql to oracle工具。其中DB2DB工具不包含oracle,mysql to oracle仅有这两种。
Access-to-MySQL Access数据库转MySQL数据库 DBF-to-MySQL DBF数据库转MySQL数据库 Excel-to-MySQL Excel数据库转MySQL数据库 MSSQL-to-MySQL MSSQL数据库转MySQL数据库 SQL Server数据库转MySQL数据库 MySQL-to-...
解决windows98、2000缺少微软最新SQL数据引擎的动态库文件造成的未加载db-library网络通信层问题。 运行"请运行.bat"文件
The PAW3205DB-TJ3T is a high performance and low power CMOS process optical mouse sensor with DSP integration chip that serves as a non-mechanical motion estimation engine for implementing a computer ...
4.3.1 安全审计和数据脱敏 5.1.1 集群维护管理 5.2.1 集群安全管理 5.3.1 集群标签管理 5.4.1 集群容量管理 5.5.1 集群快照管理 6.1.1 数据迁移概述 6.2.1 DSC SQL语法迁移工具 6.3.1 GDS迁移物理数据 6.4.1 COPY...
02-MySQL数据乱码及多种解决方案实战2.avi 03-MySQL不乱码5种方法及不乱码根源深入详解.avi 04-下节内容及课后作业说明.avi 05-课前思想-17期学生23万入职BAT公司 06-课前思想-及课前考试题说明.avi 07-MySQL字符集...
现在它仅支持mysql和postgresql(远程和本地) 将资产远程同步到本地,将本地同步到远程命令mysql,mysqldump(或pg_dump,psql),bzip2和unbzip2(或gzip)必须位于您的PATH中随意分叉并添加更多的数据库支持或新...
HCIP-GaussDB for MySQL题库 2023年八月最新题库 80%题库覆盖率,全网最高 需要其他题库评论联系
MySQL练习数据-Sakilia-spatial DB,支持MySQL5.6~8 sakila-mv-data.sql sakila-mv-schema.sql Sakila 数据库提供了以下数据表: actor,演员信息表。通过 film_actor 表和 film 表进行关联。 film,电影信息表。...
004-006 -MySQL视频教程-DB DBMS SQL的关系
MySQL官方测试库Employees Sample Database(该测试库含有6个表,总计4百万数据记录)