MyCat教程【分库分表】

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: 本文我们来介绍下MyCat的分库分表操作

本文我们来介绍下MyCat的分库分表操作


分库分表


一、分片规则介绍


 在rule.xml中定义了各种myCat支持的分片规则。


取模mod-long

自然月分片 sharding-by-month

按日期(天)分片sharding-by-date

按单月小时拆分sharding-by-hour

范围约定,提前规划好分片字段某个范围属于哪个分片,auto-sharding-long

范围求模分片

取模范围约束sharding-by-pattern

分片枚举sharding-by-intfile

固定分片hash算法

截取数字hash解析sharding-by-stringhash

一致性hash

日期范围hash分片rangeDateHash

截取数字做hash求模范围约束sharding-by-prefixpattern

应用指定,在运行阶段有应用自主决定路由到那个分片。sharding-by-substring

冷热数据分片 sharding-by-date

有状态分片算法

crc32slot分片算法

注意:


id中推荐配置主键列

所有的 tableRule 只能使用一次。如果需要为多个表配置相同的分片规则,那么需要在此重新定义该规则。

在 crc32Slot 算法中的分片数量一旦给定,MyCat 会将该分片数量和 slor 的取值范围保存到文件中。在次修改分片数量时是不会生效的,需要将该文件删除。文件位置位于 conf目录中的 ruledata 目录中。

二、分库配置


2.1 创建3个数据库


 在master中分别创建3个数据库demo1,demo2,demo3,因为主从的关系会同步到从库中。


create database demo1 default character set utf8;
create database demo2 default character set utf8;
create database demo3 default character set utf8;

20191016161140184.png



2.2 schema.xml配置


 修改schema.xml文件中的信息,如下:

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
  <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
    <table name="t_user" dataNode="dn1,dn2,dn3" rule="crc32slot" />
  </schema>
  <dataNode name="dn1" dataHost="localhost1" database="demo1" />
  <dataNode name="dn2" dataHost="localhost1" database="demo2" />
  <dataNode name="dn3" dataHost="localhost1" database="demo3" />
  <dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
        writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
    <heartbeat>select user()</heartbeat>
    <!-- can have multi write hosts -->
    <writeHost host="hostM1" url="192.168.88.180:3306" user="root"
           password="123456">
      <!-- can have multi read hosts -->
      <readHost host="hostS2" url="192.168.88.181:3306" user="root" password="123456" />
    </writeHost>
  </dataHost>
</mycat:schema>


注意:


因为有三个库,所以添加了三个dataNode

使用的分配规则是crc32slot

主从和读写分离设置没有动,所以writeHost和readHost的配置没变

2.3 修改rule.xml文件


 因为使用的是crc32slot算法,且有3个数据库,所以需要修改rule.xml中的配置

20191016163425142.png


同时我们需要删除掉ruledata目录中的规则文件,不然修改的3不会起作用


20191016163719535.gif


重启mycat服务


20191016162843797.png


查看分配规则


20191016163801734.png


2.3 在mycat中创建t_user表


 先删除原来创建的t_user表,然后通过mycat创建t_user表示,通过mycat创建会多出来一个_slot字段。

CREATE TABLE t_user (
  `id` INT,
  `name` VARCHAR (30),
  `age` INT,
  PRIMARY KEY (`id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8;

20191016163115502.gif



三、分库测试


 在mycat客户端插入数据,然后去对应的物理库中查询具体的情况

insert into t_user(id,name,age)values(1,'波波烤鸭',18)


注意:插入语句的语法要完整,不要偷懒省略字段,尤其是id自增长

20191016164100547.gif

数据按照我们设置的规则分别存储到了各自数据的表结构中了。


然后我们来看下查询操作,通过mycat看能否将所有的数据都查询出来,


20191016164319609.png

相关文章
|
SQL 关系型数据库 MySQL
MyCat2介绍以及部署和读写分离/分库分表(MyCat2.0)
MyCat2介绍以及部署和读写分离/分库分表(MyCat2.0)
2488 0
|
jenkins 持续交付 Docker
Jenkins - 插件安装失败处理方法
Jenkins - 插件安装失败处理方法
11570 1
Jenkins - 插件安装失败处理方法
|
Linux 网络安全 数据库
MyCat下载与安装
MyCat下载与安装
4113 0
|
SQL 关系型数据库 MySQL
ShardingSphere-Sharding-Proxy(安装和分表配置)| 学习笔记
快速学习ShardingSphere-Sharding-Proxy(安装和分表配置)。
ShardingSphere-Sharding-Proxy(安装和分表配置)| 学习笔记
|
5月前
|
机器学习/深度学习 数据可视化 安全
大模型应用:从交易行为到实时反欺诈:向量数据库驱动的智能风控实践.33
本文介绍基于向量数据库的实时交易反欺诈方案:将用户、交易、环境等多维特征转化为行为向量,存入向量库后通过毫秒级相似度检索识别异常。相比传统规则引擎,该方案响应更快、适应性更强、误报率更低,并附ChromaDB完整实现与可视化分析。
364 1
大模型应用:从交易行为到实时反欺诈:向量数据库驱动的智能风控实践.33
|
7月前
|
Web App开发 人工智能 自然语言处理
2025年企业AI客服系统建设费用全解析:中小企业如何控制预算?
2025年,AI客服转向场景适配与成本可控,中小企业如何选型?本文解析主流系统费用与选型策略,推荐瓴羊Quick Service等高性价比方案,助力企业以合理预算实现智能服务升级。
|
存储 Ubuntu 前端开发
Linux软件包管理工具概览
在Linux系统中,dpkg、apt、rpm、yum和dnf是几种常见的包管理工具,它们分别属于不同的Linux发行版或家族,并有着各自的诞生顺序和特点。下面将按照这些工具的诞生顺序,并结合Debian、Red Hat、CentOS、Ubuntu和Kali等系统,进行详细的介绍。
500 4
|
域名解析 缓存 网络协议
计算机网络——网络基础_网络命令的使用(配置主机IP、ipconfig、ping、tracert、arp实战)
任务要求 打开Windows 10的命令(控制台)窗口。 实验步骤 有多种方法打开Windows命令(控制台)窗口。其中一种较为快速的方法是: 在键盘上按下“Win+R"组合键,系统将打开“运行"窗口,如图1-1所示。键入cmd.按回车键或单击“确定”按钮,Windows将打开命令(控制台)窗口,显示俞令提示符,如图1-2所示。
3034 1
计算机网络——网络基础_网络命令的使用(配置主机IP、ipconfig、ping、tracert、arp实战)
|
供应链 监控 算法
ERP系统中的库存优化与库存周转率分析解析
【7月更文挑战第25天】 ERP系统中的库存优化与库存周转率分析解析
1428 1
|
存储
进制的基本介绍以及进制转换和计算
进制的基本介绍以及进制转换和计算
1379 0