今天来使用mycat管理mysql集群, 随着数据量的提升, 我们如果把所有数据存储在一个数据库中, 对数据的各种操作就会变得非常的困难. 自然我们又想到了数据库也进行集群部署, 将一个数据库的数据分散到不同的数据库中存储, 进而提升数据操作的性能.
本文的定义是简洁快速的使用mycat, 让读者可以快速的入门mycat, 因此本文聚焦于mycat的安装, 使用, 简易配置, 常用配置文件和标签的介绍. 如果需要全面深入的了解建议去读一读官方推荐的文档.
什么是mycat?
Mycat 是基于阿里巴巴曾经开源的知名产品 - cobar 演变而来, 简单来说MyCAT就是一个数据库中间件产品支持mysql集群, 你可以像使用mysql一样使用mycat, 对于开发人员来说根本感觉不到mycat的存在.
其实可以这么简单理解: 你有多个数据库, 那么你存数据的时候存到哪个数据库呢? 所以我们需要一个存储策略, 而mycat就是做这个事情的, 简单来说: mycat就是管理数据库集群的.
mycat的分片策略
本文主要目的是为了快速搭建使用起来, 不是为了深入分析概念, 因此就简单列举介绍下, 建议读者可以到官方文档或百度了解概念. 也可以到这篇博文了解一下详细的每个参数和属性有什么作用: https://www.cnblogs.com/joylee/p/7513038.html.
- 首先什么是分片?
- 分片就是指将同一个数据库中的数据分散存储到多个数据库中, 以达到分散单台设备负载的效果, 这就是分片.
- 数据切分的方式
- 垂直切分
- 垂直切分就是按照表来切分
- 横向切分
- 横向切分就是把单表按照记录来切分, 例如ID (将1,2切分到一个库表, 3,4切分到一个库表)
- 垂直切分
- mycat的分片策略
- 逻辑库 (schema)
- 逻辑库不是真实存在的, 想要把数据存储到物理库中, 就需要通过逻辑库来操作, 简单来说: 逻辑库是来管理和调度物理库的.
- 逻辑表 (table)
- 逻辑表的概念是类似于逻辑库的, 逻辑表是来管理和调度物理表的.
- 分片节点 (dataNode)
- ip+数据库名
- 节点主机 (dataHost)
- 分片节点所在的主机
- 分片规则 (rule)
- 就是拆分的算法, 如何来拆分呢? 就要用到分片规则, mycat有10中分片规则, 基本上我们的应用场景都包含在内了, 这方面mycat做的很赞!
- 逻辑库 (schema)
好了, 不多说, 下面我们正式进入正题.
首先我们需要现有一个已经装好jdk和mysql的linux系统, 为什么需要jdk呢? 因为mycat是java代码写的, 所以需要jdk环境.
安装mysql步骤
第一步: 查看是否已经安装mysql
rpm -qa | grep mysql
第二步: 卸载你查询到的mysql
#rp