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 属性
中配置逻辑表的权限。

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

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

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

相关推荐
这个DBA有点耶3 小时前
AI写的SQL跑崩了生产库,这锅谁背?
数据库·人工智能·程序员
镜舟科技4 小时前
Databricks 再提 LTAP,AI 时代的数据底座为何重回大一统叙事?
数据库·架构·agent
Databend4 小时前
从湖仓升级为 Agent 时代的数据控制面,Snowflake 和 Databricks 有哪些布局
大数据·数据库·agent
ClouGence8 小时前
SQL Server CDC 能放到 Always On 备库读吗?一文讲透原理与实践
数据库·sql server
先吃饱再说1 天前
存储的进化:从 MySQL 到浏览器缓存,数据到底住在哪?
数据库
Nturmoils1 天前
字段太多看不全,ksql 的展开模式和输出控制怎么用
数据库·后端
Databend1 天前
Agent 轨迹分析与归因的数据工程实践
大数据·数据库·agent
这个DBA有点耶1 天前
SQL改写进阶:标量子查询的“隐形代价”与消除实战
数据库·mysql·架构
smallyoung1 天前
数据库乐观锁深度解析:MySQL、PostgreSQL 实战 + Spring Boot 集成指南
数据库·mysql·postgresql
parade岁月1 天前
MySQL JOIN解析:朴实无华但食之有味
数据库·后端