MySQL-分库分表详解(三)

♥️作者:小刘在C站

♥️个人主页:************************************************************************************************************************************************************************************************************************************************************小刘主页****************************************************************************************************************************************************************************************************************************************************************

♥️努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生!

♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏: 云计算技术

♥️小刘私信可以随便问,只要会绝不吝啬,感谢CSDN让你我相遇!

前言

上章讲到MySQL-分库分表详解(二)本章继续

目录

MySQL

[4 MyCat配置](#4 MyCat配置)

[4.1 schema.xml](#4.1 schema.xml)

[4.1.1 schema标签](#4.1.1 schema标签)

1). schema 定义逻辑库. schema 定义逻辑库)

核心属性:

2). schema 中的table定义逻辑表. schema 中的table定义逻辑表)

核心属性:

[4.1.2 datanode标签](#4.1.2 datanode标签)

核心属性:

[4.1.3 datahost标签](#4.1.3 datahost标签)

核心属性:

[4.2 rule.xml](#4.2 rule.xml)

[4.3 server.xml](#4.3 server.xml)

1). system标签. system标签)

2). user标签. user标签)


MySQL

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择 MySQL 作为网站数据库。

4 MyCat****配置

4.1 schema.xml

schema.xml 作为 MyCat 中最重要的配置文件之一 , 涵盖了 MyCat 的逻辑库 、 逻辑表 、 分片规
则、分片节点及数据源的配置。

主要包含以下三组标签:
schema 标签
datanode 标签
datahost 标签


4.1.1 schema****标签

1). schema 定义逻辑库

schema 标签用于定义 MyCat 实例中的逻辑库 , 一个 MyCat 实例中 , 可以有多个逻辑库 , 可以通
过 schema 标签来划分不同的逻辑库。 MyCat 中的逻辑库的概念,等同于 MySQL 中的 database 概念, 需要操作某个逻辑库下的表时 , 也需要切换逻辑库 (use xxx) 。

核心属性:

name :指定自定义的逻辑库库名
checkSQLschema :在 SQL 语句操作时指定了数据库名称,执行时是否自动去除; true :自动去
除, false :不自动去除
sqlMaxLimit :如果未指定 limit 进行查询,列表查询模式查询多少条记录

2). schema 中的table定义逻辑表


table 标签定义了 MyCat 中逻辑库 schema 下的逻辑表 , 所有需要拆分的表都需要在 table 标签中定
义 。

核心属性:

name :定义逻辑表表名,在该逻辑库下唯一
dataNode :定义逻辑表所属的 dataNode ,该属性需要与 dataNode 标签中 name 对应;多个
dataNode 逗号分隔
rule :分片规则的名字,分片规则名字是在 rule.xml 中定义的
primaryKey :逻辑表对应真实表的主键
type :逻辑表的类型,目前逻辑表只有全局表和普通表,如果未配置,就是普通表;全局表,配
置为 global

4.1.2 datanode****标签

核心属性:

name :定义数据节点名称
dataHost :数据库实例主机名称,引用自 dataHost 标签中 name 属性
database :定义分片所属数据库

4.1.3 datahost****标签


该标签在 MyCat 逻辑库中作为底层标签存在 , 直接定义了具体的数据库实例、读写分离、心跳语句。

核心属性:

name :唯一标识,供上层标签使用
maxCon/minCon :最大连接数 / 最小连接数
balance :负载均衡策略,取值 0,1,2,3
writeType :写操作分发方式( 0 :写操作转发到第一个 writeHost ,第一个挂了,切换到第二
个; 1 :写操作随机分发到配置的 writeHost )
dbDriver :数据库驱动,支持 native 、 jdbc

4.2 rule.xml

rule.xml 中定义所有拆分表的规则 , 在使用过程中可以灵活的使用分片算法 , 或者对同一个分片算法
使用不同的参数 , 它让分片过程可配置化。主要包含两类标签: tableRule 、 Function 。

4.3 server.xml

server.xml 配置文件包含了 MyCat 的系统配置信息,主要有两个重要的标签: system 、 user 。

1). system标签

主要配置MyCat中的系统配置信息,对应的系统配置项及其含义,如下:

2). user标签

配置 MyCat 中的用户、访问密码,以及用户针对于逻辑库、逻辑表的权限信息,具体的权限描述方式及配置说明如下:


在测试权限操作时,我们只需要将 privileges 标签的注释放开。 在 privileges 下的 schema
标签中配置的 dml 属性配置的是逻辑库的权限。 在 privileges 的 schema 下的 table 标签的 dml 属性
中配置逻辑表的权限。

♥️关注,就是我创作的动力

♥️点赞,就是对我最大的认可

♥️这里是小刘,励志用心做好每一篇文章,谢谢大家

相关推荐
yuzhiboyouye5 分钟前
内连接,左连接,右连接怎么区别开来?
数据库
铭毅天下20 分钟前
Easysearch 版本进化全图——从 ES 国产替代到 AI Native 搜索数据库
大数据·数据库·人工智能·elasticsearch·搜索引擎
muddjsv27 分钟前
SQL 最常用技能详解与实战示例
数据库·sql·mysql
muddjsv2 小时前
大中小型企业数据配置年度成本估算分析
数据库·企业运营
ᰔᩚ. 一怀明月ꦿ2 小时前
MySQL 学习目标
学习·mysql·adb
塔能物联运维2 小时前
存量机房升级成为行业主流方向:热管理重构算力中心价值路径
数据库
lqj_本人2 小时前
鸿蒙electron跨端框架PC工志簿实战:项目、工时、阻塞和下一步都要有位置
数据库·华为·harmonyos
刘一说3 小时前
AI科技热点日报 | 2026年5月22日
数据库·人工智能·科技
LCG元3 小时前
RAG工程指南:从基础检索到生产部署全解析
java·运维·数据库
godspeed_lucip3 小时前
LLM和Agent——专题3: Agentic Workflow 入门(1)
大数据·数据库·人工智能