1、分片 1.1、垂直分片
- 将一个XO大表,按照字段拆分为A表,B表。举例:
- xo表有xoid,name,password字段现在拆表为
- A 表:xoid,nameB 表:xoid,password
- 将一个XO大表,按照数据,水平拆分为A表,B表。举例:
- xo表有数据id=1,id=2,id=3现在拆表为
- A 表:id=1,id=2B 表:id=3
- 就是将一个表的数据,拆分为多个表,但还在同一个数据库实例中拆分方法
- 水平分片垂直分片。
- 将一个表的数据,拆分到多个数据库实例中这里就是将tablexx表,拆分到数据库实例A,B,C中。
- mycat是数据库中间件,可以认为是管理数据库的工具。mycat上显示的库就是逻辑库,被管理的库是物理库,比如mysqlmycat上显示的表就是逻辑表,被管理的表是物理表,比如mysql
存在关联关系的父子表在数据插入的过程中,子表会被Mycat路由到其相关父表记录的节点上,从而父子表的Join查询可以下推到各个数据库节点上完成,
10、Mycat全局表- 每个节点同时并发插入和更新数据每个节点都可以读取数据,提升读性能的同时解决跨节点Join的效率
- 分片场景下,MySQL自身的自增长主键无法保证唯一Mycat 全局序列号 就是分片场景下的主键id
- 在数据库中建立一张表(全局序列号表)
- name:存放全局序列号名称current_value:全局序列号当前值increment:步长,每次读取多少个sequence
- 当DN1,DN2,DN3 只要有一个错误,那就全部回滚。当DN1,DN2,DN3 都执行成功的话,存在commit提交失败的概率(很小)。也就是存在数据不一致情况。



