MySQL分库分表及MyCat
图
分库分表是一种常见的数据库架构设计方法,用于解决单一数据库承载大量数据时性能瓶颈和负载均衡问题。它的基本思想是将一个大型数据库拆分成多个小型数据库(分库),每个小型数据库再将数据表按照一定规则拆分成多个子表(分表)

单数据库问题

图

拆分策略

图

图

图

实现技术

图

MyCat搭建

图

官网地址http://mycat.org.cn/

图

下载后解压tar -zxvf xxx,如果MySQL的驱动不一致,可上传至lib目录下替换,同时授予Linux的可执行权限

图

核心概念

图

配置方式

图

图

启动服务

图

图

MyCat使得程序对数据库的操作无感知,跟单数据库操作方式一样

MyCat配置

图

图

图

图

图

图

图

图

MyCat分片

垂直分表

图

图

分片之间的联查问题,使用全局表解决,也就是通用的表都保持一致,每个数据库都有

图

水平分表

图

图

水平分表的分片规则

第一种:范围分片

图

图

第二种:取模分片

图

图

第三种:一致性哈希,应对主键为字符的情况

图

图

第四种:枚举分片,可根据字段进行数据拆分

图

图

第五种:应用指定

图

图

第六种:固定分片哈希算法

图

图

第七种:字符串哈希解析算法

图

图

第八种:按天日期分片

图

图

第九种:按自然月分片

图

图

MyCat原理

图

MyCat管理

图

图

图

Zookeeper安装

图

MyCat-web安装

图