mycat和mysql

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zyq11223/article/details/78665514

MyCat是数据库中间件,支持数据库集群,提供高可用性的数据分片集群。

可以管理多个机器上的数据库组成的集群。

MyCat分片:海量数据存储的解决方案。

由该中间件将不同的逻辑分片(逻辑分片对应不同的数据库)进行组装。

MyCat分片:

什么是分片:简单的说,就是指通过某种特定的条件,将我们存放在同一个数据库中的数据分散存放到多个数据库(主机)上面,以达到分散单台设备负载的效果。

数据的切片(sharding)根据其切分规则的类型,可以分为两种切分模式。

1.一种是按照不同的表(或者schema)来切分到不同的数据库(主机)之上,这种切分称之为数据库的垂直(纵向)切分。

2.另一种是根据表中的数据的逻辑关系,将同一个表中的数据按照某种条件拆分到多台数据库(主机)上面,这种切分称之为数据的水平(横向)切分。

MyCat的分片策略:

由此可见,datanode对应的database可以分布在不同的主机上,也可以放在一台主机上。

schema(逻辑库)、table(逻辑表)、datanode(分片节点)这些都是逻辑上的划分。

datahost(节点主机)逻辑上的划分对应物理结构上的主机或者数据库

逻辑上划分成分片节点是按照一定的分片规则进行的。

MyCat的默认端口号是8066,数据库中间件MyCat不允许使用*作为通配符,即select * ...是不被允许的。

ID为0-500万的数据都会在第一个数据节点上,以此类推,500万-1000万在第二个节点上.....

超出规则的数据无法存入,需要扩容,新建数据库节点(即新建datanode)。

通过MyCat实现数据库读写分离,以及自动切换机制,不过这需要mysql的主从复制机制配合。

该问题需要进一步扩展,可以通过查看官方文档等方式来学习,有时间时回过头来整理。

MyCat

该机制间实现了负载均衡的功能,主从备份的功能。

通过配置MyCat实现读写分离。主节点通常是实现写操作,从节点实现读操作。

主节点宕机后,可以在从节点中找一个作为主节点。


猜你喜欢

转载自blog.csdn.net/zyq11223/article/details/78665514