mysql分布式

Posted Wjun0

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql分布式相关的知识,希望对你有一定的参考价值。

一,复制,对数据进行备份,实现搞可用,提高吞吐量,实现高性能。

  1,主从架构

  2,多主架构

  3,主主从从

  4,主备 (实际用得多)

 

二,分片/分库分表 ()

1,垂直拆分

  1,垂直分表

  2,垂直分库

  如果做垂直分库,应该把有关联的表放在同一个库中,因为数据库的事务不能跨库,不能使用inner join,  order_by ,等链接查询,只能分次数查询,在应用端在合并。

2,水平拆分

  1,水平分表

  2,水平分库分表

  3,分布式id

 需求:水平分表后,需要保证多表id冲突问题

 

 雪花算法:1bit + 时间戳41 + 机器id10 序列号12

 id 取模运算

 

分布式事务

在一个事务不能完成的情况下,

核心:二阶段提交协议(简称2PC协议/XA协议)

问题:会出现事务等待情况,增加死锁的机率

 

基于状态/消息的最终一致性方案(使用较多)

 

 

悲观锁:

  开发者主动设置

乐观锁:

  先不加锁(假设没有并发),但更新前校验数据的一致性,手动代码实现(先查在更新)

  

 

 

 

 

 

 

 

 

 

 

以上是关于mysql分布式的主要内容,如果未能解决你的问题,请参考以下文章

死磕 java同步系列之mysql分布式锁

MariaDB与MySQL对比 --- 对分布式事务的支持

Mysql高手系列 - 第26篇:聊聊如何使用mysql实现分布式锁

mysql 和 hive 和分布式zookeeper和HBASE分布式安装教程

MySQL学习笔记05MySQL集群的分布式权限

大型网站Mysql分布式集群架构技术详解教程