目录
一、分库分表
1.1 介绍
1.1.1 问题分析
1.1.2 拆分策略
1.1.3 垂直拆分
1.1.4 水平拆分
1.1.5 实现技术
1.2 MyCat概述
1.2.1 介绍
MyCat是开源的、活跃的、基于Java语言编写的MySQL数据库中间件。可以像使用MySQL一样来使用MyCat,对于开发人员来说根本感觉不到MyCat的存在。
优势:
- 性能可靠稳定
- 强大的技术团队
- 体系完善
- 社区活跃
1.2.2 下载
下载地址:http://dl.mycat.org.cn/
1.2.3 安装
1.2.4 目录介绍
1.2.5 概念介绍
1.3 MyCat入门
1.3.1 需求
1.3.2 环境准备
1.3.3 配置
上述的配置表示,定义了两个用户root 和user,这两个用户都可以访问DB01这个阔疾苦,访问密码都是123456,但是root用户访问DB01逻辑库,既可以读又可以写,但是user用户访问DB01逻辑库是只读的
1.3.4 测试
- 启动
- 测试
1.4 MyCat配置
1.4.1 schema.xml
schema.xml 作为MyCat中最重要的配置文件之一,涵盖了MyCat的逻辑库、逻辑表、分片规则、分片节点及数据源的配置
主要包含以下三组标签
- schema标签
- datanode标签
- datahost标签
- schema标签
- dataNode标签
- dataHost标签
1.4.2 rule.xml
1.4.3 server.xml
在测试权限操作时,只需要将privileges标签的注释放开。在privileges下的schema标签中配置的dml属性配置的是逻辑库的权限。在privileges的schema下的table标签的dml属性中配置逻辑表的权限。
1.5 MyCat分片
1.5.1 垂直拆分
- 场景
在业务系统中,涉及以下表结构,但是由于用户与订单每天都会产生大量的数据,单台服务器的数据存储及处理能力是哟许欸你的, 可以对数据库表进行拆分,原有的数据库表如下。
- 准备
- 配置
- 测试
- 全局表
1.5.2 水平拆分
- 场景
在业务系统中,有一张表(日志表),业务系统每天都会产生大量的日志数据,单台服务器的数据存储及处理能力是有限的,可以对数据库表进行拆分。
- 准备
- 配置
- 测试
配置完毕后,重新启动MyCat,然后再mycat的命令行中,之下如下SQL创建表、并插入数据、查看数据分布情况
1.5.3 分片规则
- 范围分片
- 取模分片
- 一致性hash分片
- 枚举分片
- 应用指定算法
- 固定分片hash算法
- 字符串hash解析
- 按天分片算法
按照日期及对应的时间周期来分片
- 自然月分片
1.6 MyCat管理及监控
1.6.1 MyCat原理
1.6.2 MyCat管理
1.6.3 MyCat-eye
- 介绍
Mycat-web(Mycat-eye)是对Mycat-server提供监控服务,功能不局限于对Mycat-server使用。他通过JDBC连接对Mycat、Mysql监控,监控远程服务器(目前仅限于Linux系统)的cpu、内存、网络、磁盘。
Mycat-eye运行过程中需要历来zookeeper,因此需要先安装zookeeper
- 安装
- 配置
- 测试