mycat应用

1.一表存多库

一张用户信息表user 数据存在db1数据库中user,db2中的user表,db3中的user表,各个数据库中的表结构一样,存取的信息不同,三张user表的总合为 初始的user信息表,这样分开存贮有常用的十种rule,链接:Mycat水平拆分之十种分片规则。有mycat的源码,可以自己写rule的具体实现类,封装打包mycat部署在服务器上

在slave服务器中的数据库模型和master一样,实现主从复制。

2.一个表多字段拆分在多个表中

mycat 提供水平拆分和垂直拆分

水平拆分是把同一业务逻辑中所设计的表 中信息水平拆分存在不同的数据库中,水平拆分的原则关键是 要根据哪个字段拆分,拆分的rule是什么。

垂直查分是把不同的业务逻辑所涉及的表存在不同数据库中,具体的查分原则在mycat的schema.xml的配置中

而一个表 把字段拆分存在不同表中,,这个目前没有看到这方面拆分的方法。

水平拆和垂直拆图片:

mycat应用

mycat应用

mycat应用

链接:mycat表的拆分原则  21页

3.读写分离和主从替换

   

3.1 mysql主从复制的搭建 mysql 集群

    标准的mysql主从复制搭建十分简单,mysql主从复制搭建:转载 mysql基本主从复制搭建

    步骤:1.修改主服务器master的my.cnf 配置文件,添加开启日志读入和服务id即可

                2.修改从服务器slave 的my.cnf  添加服务id即可

                3.参照主master 中mysql的信息,配置从slave 中mysql 的slave属性

完成;

    标准有缺点,最关键的就是:结合mycat实现读写分离时,当主挂了,mycat会把从当主来用(具体配置链接有),但这是主就没有用了,从服务器变成了主服务,但mysql没有  从服务器的  主从复制,这时 需要手动操作, 重新配置主从复制,把从变主,主变从。

 改进可以 不用 标准的mysql搭建主从复制,用calera cluster ,现在,不用mysql自己的主从复制,用calera cluster for mysql 的集群搭建主从复制,具体介绍参见连接  Galera Cluster特性  

但Galera Gluster也有缺点,分析参见连接

MySQL Galera Cluster的特性和不足之处介绍


实际开发 在官方文档中是建议用标准的 或者根据不同的业务 用不用的技术

实际开发 用标准的mysql主从复制   235页 这里mycat主要就是代理的作用

3.2 mycat生产环境部署 

关于mycat 的集群

mycat应用