高可用技术之数据库分库分表技术

Posted Java技术汇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高可用技术之数据库分库分表技术相关的知识,希望对你有一定的参考价值。

大流量、高并发下
随着互联网发展:

程序来说话:拆、代、分

电商系统:会员中心、商品中心、交易中心三个独立模块sso

数据库:分库分表

数据压力、查询效率:读写分离

1Oracle

互联网公司不喜欢用?太贵类 甲骨文500百万RMB

数据量很大、数据量 能力强

2mysql

  开源、免费 广泛 互联网用的很多

缓存、限流、降级、读写分离、分库分表。

Mysql读写分离 :

Mysql proxy/atlas/tddl/

 高可用技术之数据库分库分表技术

1.数据同步的延迟

2.虽然解决高并发问题

3.没有解决高可用。

高可用HA:没有单点故障的问题?

TDDL方式实现

高可用:

1.可以进行自动的切换master/slave

2.可以监控mysql状态

3.水平拆分、分表散列

4.支持多个数据源

 

分库分表类型:

水平/垂直

垂直:将一个属性比较多、数据大的表拆分、通过降低表的大小来提高性能。

User

  Idnameagephonecitypasswordimgaddresstel... 

User-base:

Id name password

User_info: idage phonecity...

User表的数据字段分两个表存储:user_base/user_info

特点:

1、每个库(表)的结构都不一样

2、每个库(表)的数据都(至少有一列)一样

3、每个库(表)的的并集时全量数据。

水平:以某个字段按照一定的规律(去模)将一个表的数据分到过个表(库)中
把30岁的和31岁分别存两张表 

User

  Idnameagephonecitypasswordimgaddresstel

 1 wukong 30

3、Baiqi 30

User

  Idnameagephonecitypasswordimgaddresstel

 2 luban 31

 4、zhangfei 31

特点:

1、每个库(表)的结构都一样

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

3、每个库(表)的的并集时全量数据。

  

 

分库分表策略:

Hash取模:通过一个字段进行hashcode、一致性hash

Range范围:按时间、id、年份划分

List预定义:(明天讲这个知识点)100库 扩展性很好。风投

 

分库分表问题:

多数据库管理

多个数据源

跨库事务和join

Mysql5.7x版本支持XA分布式事务 atomikosjava xa分布式事务框架个)

查询数据结果集合

通过业务避免这个问题

异构方式内存计算(sparkES

分布式全局唯一id(另外一节课讲过方案)

很多解决方案

高可用技术之数据库分库分表技术

推荐阅读:



(点击阅读原文可快速进入)

高可用技术之数据库分库分表技术
微信号:bitedu2015

以上是关于高可用技术之数据库分库分表技术的主要内容,如果未能解决你的问题,请参考以下文章

分库分表架构实践

MySQL 高可用:mysql+mycat实现数据库分片(分库分表)

MySQL调优分库分表读写分离高可用

MySQL调优分库分表读写分离高可用

数据库之分库分表-垂直?水平?

水平分库分表的关键步骤和技术难点