Mycat介绍

MYCAT是什么:
一个用于MySql读写分离和于数据切分的高可用中间件
一个模拟为MySQL SERVER 的超级数据库代理
一个能平滑扩展支持1000亿大表的分布式数据库系统
一个可管控多种关系数据库的数据库路由
为什么选择mycat:
基于阿里的成熟项目Cobar而来,它有过大量的大规模生产案例
社区非常活跃,维护者的水平很高,重大Bug都24小时修复
目前的生产案例是开源项目中为数最多的,而且很多是大型项目
Mycat的版本分为长期支持版本和当前最新版本两种,前者出现重大Bug后,还会及时修复,解决了生产中应用的后顾之忧
Mycat的资料非常全,包括志愿者提供的资料,用户分享的经验资料,以及官方定期更新的《Mycat权威指南》,绝大多数技术问题,都可以通过文档和社区交流来解决
如果需要专业技术支持服务,也可以跟Mycat社区交流,通过赞助开源项目的方式,名利双收,一举两得。
系统切分及其解决方案:
何为数据(系统)切分?
简单来说,就是指通过某种特定的条件,按照某个维度,将我们存放在同一个数据库中的数据分散存放到多个数据库(主机)上面以达到分散单库(主机)负载的效果。 切分模式: a.垂直(纵向)切分。 B.水平切分。
垂直拆分
一个数据库由很多表的构成,每个表对应着不同的业务,垂直切分是指按照业务将表进行分类,分布
Mycat介绍_第1张图片
水平切分:
相对于垂直拆分,水平拆分不是将表的数据做分类,而是按照某个字段的某种规则来分散到多个库之中,每 个表中包含一部分数据。简单来说,我们可以将数据的水平切分理解为是按照数据行的切分,就是将表中 的某些行切分到一个数据库,而另外的某些行又切分到其他的数据库中,主要有分表,分库两种模式,
如图: 优点:  不存在单库大数据,高并发的性能瓶颈。  对应用透明,应用端改造较少。 按照合理拆分规则拆分,join操作基本避免跨库。  提高了系统的稳定性跟负载能力。

缺点:  拆分规则难以抽象。  分片事务一致性难以解决。  数据多次扩展难度跟维护量极大。  跨库join性能较差。

你可能感兴趣的:(Mycat介绍)