mysql数据库 垂直切分

小编按照以下顺序,逐步描述垂直切分 的有关信息。
1.数据库切分原因
2.数据库切分原理
3.mycat切分配置
4.跨分片全局表的实现
5.分片实现集群
6.垂直切分优缺点

1.切分原因
当我们使用了数据库复制,实现数据表的读写分离后,数据库的压力还是达到了瓶颈,我们需要切分数据库,来达到减轻数据库的压力,把数据库表分散到各个数据库中,实现分散负载效果。

2.数据库切分原理

数据库垂直切分.jpg

1.上图分为 原始单机单节点数据库 与 使用mycat中间件 实现的数据库垂直切分两个部分。
2.单机单节点难以承受压力,故使用mycat中间件进行切分, 生成虚拟逻辑库 ,里面包含虚拟逻辑表
3.虚拟逻辑表通过节点 分别连接 真实数据库 来实现分散负载效果

3.mycat切分配置
1. schema.conf (逻辑数据库)
2. server.conf (设置用户)
3.因为不是水平切分,故不用设置rule.conf

schema.conf



  
    
select user() select user() select user()

server .conf




    
        0
        1
        0
        0
        2
        false
        0
        0
        1
        64k
        1k
        0
        384m
        false
    
    
    
        Abc_123456
        test
    

4.跨分片全局表的实现
当我们查询需要连表查询的时候,就需要夸分片查询
在schema.conf 的虚拟库中设置 type =' global' dataNode='user,pro,info'
比如说 以下配置 为了让user可以全局调用

 
    

配置完以后我们把user表复制到各个节点的真实数据库

5.分片实现集群

为了让分片能够实现读写分离,加强数据库的负载能力,故使用数据库主从复制功能实现

首先为每个分片 搭建数据库集群 (详细参考我的replication复制 或者 PXC集群搭建文章)

prelication 复制方法 教程
www.jianshu.com/p/6ab29651d2bd
PXC 复制方法 教程
www.jianshu.com/p/59404ae4bb0e

然后在schema 中设置dataHost 增加读写分配功能


   select user() 
  
      
      
      
  

6.垂直切分优缺点
优点:
1.数据维护简单
2.数据库分工明确
缺点:
单库性能瓶颈,不易数据扩展跟性能提高

你可能感兴趣的:(mysql数据库 垂直切分)