分库分表的概念

数据库的分库分表是指将一个数据库中的数据按照一定的规则分散到多个物理存储设备(例如不同的服务器)上,以实现更高的数据处理能力、可用性、可扩展性和可靠性等方面的需求。通常情况下,数据库分库分布是针对大型应用系统的数据管理需求而进行的,以便满足系统高并发、大容量、高可用等性能指标的要求。
MyCat2分库分表的配置
集群环境准备
1、一台MyCat2服务器,二主二从四台MySQL服务器。
- MyCat:Mycat服务器,系统环境为MyCat2,IP地址为192.168.238.60。
- M1:MySQL主节点1,系统环境为CentOS7+MySQL8,IP地址为192.168.238.61。
- M2:MySQL主节点2,系统环境为CentOS7+MySQL8,IP地址为192.168.238.63。
- M1S1:MySQL主节点1的从节点,系统环境为CentOS7+MySQL8,IP地址为192.168.238.62。
- M2S1:MySQL主节点2的从节点,系统环境为CentOS7+MySQL8,IP地址为192.168.238.64。
分库分表的配置
1、创建四个数据源。
1.1、主节点M1数据源。

1.2、主节点M2数据源。

1.3、主节点M1的从节点M1S1数据源。

1.4、主节点M2的从节点M2S1数据源。

2、创建包含四个数据源的两个集群。集群名称c0、c1、c2...为MyCat2内部定义名称,不建议修改。
2.1、创建集群c0。

2.2、创建集群c0。

3、创建数据库。

4、创建全局表(广播表),全局表是每个物理数据库都存在的全量数据的逻辑表。
4.1、创建全局表并插入数据,全局表使用关键字BROADCAST。

4.2、查看四个数据源中的表格,已有role的全部数据。

5、创建分片表,每个分片表的数据是整个逻辑表的一部分。
5.1、创建分片表,分片表的关键字如下:
- dbpartition by:分库算法,mod_hash(uid)表示根据字段uid的值取模运算。
- tbpartition by:分表算法,mod_hash(uid)表示根据字段uid的值取模运算。
- dbpartitions、tbpartions:分库与分表数量。

5.2、插入数据。

5.3、查看数据。

5.4、登录M1和M1S1查看数据。
5.4.1、查看数据库,其中userdb_0为userdb的第一个分片。

5.4.2、查看数据表与数据,其中user_0为user表的第一个分片,其中有一条数据。

5.5、登录M2和M2S1查看数据。
5.5.1、查看数据库,其中userdb_1为userdb的第二个分片。

5.5.2、查看数据表与数据,其中user_1为user表的第二个分片,其中有一条数据。
