分库分表简介

为什么要分库分表?

分库分表方案更多是对关系型数据库数据存储和访问机制的一种补充。

分库分表有哪些方式?

垂直拆分

特点

按照业务拆分,每个库(表)的结构都不一样。

拆后的库(表)至少有一列相同的列。

每个库(表)的并集是全量数据。

优点

拆分后业务清晰(专库专用按业务拆分)。

数据维护简单,按业务不同业务放到不同的机器上。

缺点

1)如果单表数据量大,读写压力大。

2)受某种业务来决定或者被限制。也就是说一个业务往往会影响到数据库的瓶颈。

3)部分业务无法关联,join只能通过Java程序接口去调用,增加了开发复杂度。

水平拆分

特点

1)每个库(表)结构一样

2)每个库(表)的数据都不一样

3)每个库(表)的并集都是全量数据

优点

1)单库(表)的数据保持在一定的量(减少),有助于行能提高。

2)提高了系统的稳定性和负载能力。

3)拆分的库(表)的机构相同,程序改造较少。

缺点

1)数据的扩容有难度,维护量大。

2)拆分规则很难抽象出来。

3)分片事务的一致性问题,部分业务无法关联。

join只能通过Java程序接口去调用。

分库分表会带来哪些问题?

1)分布式事务ACID

2)跨库join查询

3)分布式全局唯一ID

4)开发成本,程序员要求高

分库分表的实现框架

jdbc直连层:

        Shardingsphere,tdd1

优缺点:

1)速度快

proxy 代理层:

        myact,mysql-proxy(atlas 360)

优缺点:

1)对程序员友好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值