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

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

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

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

相关推荐
等....几秒前
Redis使用
数据库·redis·mybatis
betazhou2 分钟前
记一次Oracle REDO在线日志损坏故障修复
数据库·oracle·redo·ora-00600
一只小bit2 分钟前
Redis 初步入门教程:简单介绍和安装配置
数据库·redis·缓存
仲芒9 分钟前
[24年单独笔记] MySQL 引擎架构
笔记·mysql·架构
ChatInfo14 分钟前
Etsy 把 1000 个 MySQL 分片迁进 Vitess:425TB 数据背后的真正问题不是性能,而是运维规模
数据库·人工智能·mysql
SPC的存折38 分钟前
6、MySQL设置TLS加密访问
linux·运维·服务器·数据库·mysql
老苏畅谈运维38 分钟前
DBA分析 ORA 报错的利器,errorstack让 Oracle 错误现原形
数据库·oracle·dba
紫青宝剑1 小时前
向量数据库 Milvus
数据库·milvus
雪碧聊技术1 小时前
数据库系统基础知识
数据库
Elastic 中国社区官方博客1 小时前
如何使用 LogsDB 降低 Elasticsearch 日志存储成本
大数据·运维·数据库·elasticsearch·搜索引擎·全文检索·可用性测试