MyCat学习 ------分库分表 随笔

垂直切分、水平切分

1、垂直分库,解决库中表太多的问题。

2、垂直分表,解决表中列太多的问题。例如 商品表 包含 产地、二维码 、时间、价格、各个列。分为不同的小表。

水平切分, 大数据表拆分为小表

水平拆分后还是要考虑小标太多 导致库中表太多的问题,要综合考虑是否需要垂直分库。

拆分策略

垂直拆分(er分片) 相关联的表放在一个库

水平拆分  

范围拆分      一直性hash  根据某一个属性取模  例如 userId

 日期拆分

拆分后带来的问题

1.垮库join的问题 

    1.设计的时候 考虑应用层的JOIN的问题

    2. 通过服务层去做调用

   A服务   B 服务 

先从A 查结果  然后RPC 传给B  再做拼接

全局表

 1、数据变更比较小的基于全局应用

做冗余数据(空间换时间的方法)

垮分片数据排序分页

1.应用层做分配

唯一主键问题

数据库主从同步的原理

 主从同步的 延时问题: 心跳检测 检查 同步时间差。 应用层使用redis 写入master时  取的时候 先去redis取 缓存失效再去数据库取  从而导致数据同步时间差。

原文地址:https://www.cnblogs.com/dayao666/p/11995805.html