Mysql Sharding概述

Mysql Sharding

传统解决数据库扩展性的方式是使用Scale up(纵向扩展,通过替换为更好的机器和资源来实现伸缩,提升服务能力)方案;而当今随着互联网的发展,开源数据库领域普遍采用Scale out(横向扩展,通过加节点来实现伸缩,提升服务能力)方案提高扩展性;

分片按方向可以分为两类:
1、垂直分区:以表为单位,把不同的表分散到不同的数据库或主机上。特定是规则简单,实施方便,适合业务之间耦合度低的系统;
2、水平分区:以行为单位,将同一个表中的数据按照某种条件拆分到不同的数据库或主机上,特点是相对复杂,适合单表巨大的系统;

Sharding的应用场景:抽象处理的数据对象之间的关联数据很小,数据对象是Share nothing的。

Sharding不同于数据库分区,分片可以跨越DB,甚至跨越物理机器;常用时间、范围、面向服务等的数据划分方法。Sharding策略和业务结合的更为紧密。

数据拆分后引入的问题:
1、只能通过sharding key来读写操作;
2、集群扩容的时候重做数据的成本;

当前分片的方案:
1、使用Configure DB
2、使用Proxy
如:
Mysql Proxy、HSCALE、Spock Proxy、Atlas;
Amoeba:它集中地响应应用的请求,依据用户事先设置的规则,将SQL请求发送到特定的数据库上执行。基于此可以实现负载均衡、读写分离、高可用性等需求;
Mysql Fabric:用来管理mysql服务,提供扩展性和容易的使用系统管理mysql分片和高可用部署;

3、使用Data Engine
如:
淘宝的TDDL

参考:
1、"开源数据库 Sharding 技术 (Share Nothing)": http://dbanotes.net/database/database_sharding-2.html
2、"MYSQL分库分表总结": http://wentao365.iteye.com/blog/1740874
3、"MySQL在大型网站的应用架构演变": http://www.csdn.net/article/2014-06-10/2820160





转载于:https://my.oschina.net/anthonyyau/blog/306397

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值