mycat-3-实战篇

news/2024/5/2 18:57:12/文章来源:https://blog.csdn.net/weixin_44383484/article/details/128068151

1 总结:

1:用的表必须在mycat的配置文件中配置。

2:mycat默认分片策略中,都是针对表的主键,默认是id,如果主键不是id的,请去rule.xml自己复制一份修改

3:

2 注意细讲解

1:schema.xml中没有配置的表,用mycat创建表报错。

如下图:我在配置文件没有good3,所以用mycat创建会失败。

 

 

2 rule.xml 分片策略文件,若表的主键不是id,则要自己复制一个引用。

 

 

 

schema.xml数据库实例配置(默认都是主库读写 注意要改对应配置)

balance:只有主机,所有的 读写操作都是要在主机进行。要设置为0

                双主双从的时候 设置为1              

                一主多从模式 设置为 3 .

switchType: 主从时要设置为 -1,否则将会把数据写入从库了。造成数据不一致。

3 实战分库----数据水平拆分

3.1每个库中所有表结构相同(一个mysql实例,但是创建三个库)

全部所有表的数据都会分在自己配置的库中, 但是底下是一个mysql中三个库。

<mycat:schema xmlns:mycat="http://io.mycat/"><schema name="mycatdb" checkSQLschema="true" sqlMaxLimit="100"><!--table是逻辑表名 dataNode:来源于哪 ,rule:分片规则,auto-sharding-long 按id值划分规则 --><!-- 所有表数据均分到这三个库中 --><table name="good" dataNode="dn1,dn2,dn3" rule="sharding-by-murmur" /><table name="item" dataNode="dn1,dn2,dn3" rule="sharding-by-murmur" /><table name="order" dataNode="dn1,dn2,dn3" rule="sharding-by-murmur" /></schema><!--  ,db1,db2,db3,真实的库 --><dataNode name="dn1" dataHost="localhost1" database="db1" /><dataNode name="dn2" dataHost="localhost1" database="db2" /><dataNode name="dn3" dataHost="localhost1" database="db3" /><!--  真实的mysql实例 --><dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100"><!--按照心跳机制来判断真实的数据库是否正常运行 --><heartbeat>select user()</heartbeat><!-- 主库--><writeHost host="hostM1" url="192.168.135.128:3306" user="root"password="root"><!-- 主从配置的从库,你要是没有就删除即可--><readHost host="hostS2" url="192.168.135.4:3306" user="root" password="xxx" /></writeHost></dataHost>	
</mycat:schema>

 

3.2  每个库中所有表结构相同(两个mysql实例)

  1.    mycat逻辑库连接两个mysql实例
  2.   两个mysql都是db1的库,但是表的结构都是一样的。数据会按分片规则,插入到对应的实例中。
<mycat:schema xmlns:mycat="http://io.mycat/"><schema name="mycatdb" checkSQLschema="true" sqlMaxLimit="100"><!--table是逻辑表名 dataNode:来源于哪 ,rule:分片规则,auto-sharding-long 按id值划分规则 --><!-- 所有表数据均分到这两个库中 --><table name="good" dataNode="dn1,dn2" rule="sharding-by-murmur" /><table name="item" dataNode="dn1,dn2" rule="sharding-by-murmur" /><table name="order" dataNode="dn1,dn2" rule="sharding-by-murmur" /></schema><!--  ,db1,db2,真实的库 --><dataNode name="dn1" dataHost="localhost1" database="db1" /><dataNode name="dn2" dataHost="localhost2" database="db1" /><!--  真实的mysql实例 --><dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100"><!--按照心跳机制来判断真实的数据库是否正常运行 --><heartbeat>select user()</heartbeat><!-- 主库--><writeHost host="hostM1" url="192.168.135.128:3306" user="root"password="root"><!-- 主从配置的从库,你要是没有就删除即可--><readHost host="hostS2" url="192.168.135.4:3306" user="root" password="xxx" /></writeHost></dataHost>	<!--  真实的mysql实例 --><dataHost name="localhost2" maxCon="1000" minCon="10" balance="0"writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100"><!--按照心跳机制来判断真实的数据库是否正常运行 --><heartbeat>select user()</heartbeat><!-- 主库--><writeHost host="hostM1" url="192.168.135.129:3306" user="root"password="root"><!-- 主从配置的从库,你要是没有就删除即可--><readHost host="hostS2" url="192.168.135.5:3306" user="root" password="xxx" /></writeHost></dataHost>
</mycat:schema>

4 实战分库----数据业务拆分

<mycat:schema xmlns:mycat="http://io.mycat/"><schema name="mycatdb" checkSQLschema="true" sqlMaxLimit="100"><!--table是逻辑表名 dataNode:来源于哪 ,rule:分片规则,auto-sharding-long 按id值划分规则 --><table name="t_brand" dataNode="goods"/><table name="t_spec" dataNode="goods"/><table name="t_item" dataNode="goods"/><table name="t_good" dataNode="goods"/><table name="t_good_desc" dataNode="goods"/><table name="t_content" dataNode="content"/><table name="t_content_category" dataNode="content"/><table name="t_order" dataNode="order1,order2" rule="sharding-by-murmur"/><table name="t_pay" dataNode="order1,order2" rule="sharding-by-murmur"/><table name="t_user" dataNode="user"/><table name="t_address" dataNode="user"/></schema><!--  goods-db,content-db,order1-db,order2-db,user-db,真实的库 --><dataNode name="goods" dataHost="localhost1" database="goods-db" /><dataNode name="content" dataHost="localhost1" database="content-db" /><dataNode name="order1" dataHost="localhost1" database="order1-db" /><dataNode name="order2" dataHost="localhost1" database="order2-db" /><dataNode name="user" dataHost="localhost1" database="user-db" /><!--  真实的mysql实例 --><dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100"><!--按照心跳机制来判断真实的数据库是否正常运行 --><heartbeat>select user()</heartbeat><!-- 主库--><writeHost host="hostM1" url="192.168.135.128:3306" user="root"password="root"><!-- 主从配置的从库,你要是没有就删除即可--><readHost host="hostS2" url="192.168.135.4:3306" user="root" password="xxx" /></writeHost></dataHost>	
</mycat:schema>

5 实战分库----一个库下某几个表水平拆分

在同一个库下,只有某几个表数据过大,想要拆分。

6 代码实战

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_37771.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

车辆大全和车牌识别系统毕业设计,车牌识别系统设计与实现,车牌AI识别系统论文毕设作品参考

功能清单 【后台管理员功能】 系统设置&#xff1a;设置网站简介、关于我们、联系我们、加入我们、法律声明 广告管理&#xff1a;设置小程序首页轮播图广告和链接 留言列表&#xff1a;所有用户留言信息列表&#xff0c;支持删除 会员列表&#xff1a;查看所有注册会员信息&a…

TypeScript开启

TypeScript是什么&#xff1f; typescript是以JavaScript为基础构建的语言&#xff0c;是一个Javascript的超集&#xff0c;可以在任何支持JavaScript的平台中执行&#xff0c;typescript扩展了JavaScript&#xff0c;并添加了类型。 注意&#xff1a;ts不能被js直接解析执行&…

27个超实用Chrome DevTools 调试技巧 source 全局搜索(持续更新)

谷歌开发者工具提供了一系列的功能来帮助开发者高效 Debug 网页应用&#xff0c;让他们可以更快地查找和修复 bug。在谷歌的开发者工具中&#xff0c;有非常多有用的小工具&#xff0c;但是很多开发者并不知道。通过这篇文章&#xff0c;我把我常用的那些高效 Debug 的 Chrome …

大数据(9f)Flink双流JOIN

文章目录概述开发环境使用状态列表实现 INNER JOIN&#xff08;双流connect后CoProcessFunction&#xff09;基于间隔的JOIN&#xff08;Interval Join&#xff09;基于窗口的JOIN&#xff08;Window Join&#xff09;概述 Flink双流JOIN可用算子或SQL实现&#xff0c;FlinkSQ…

Flutter 5 大本地数据库解决方案

Flutter 5 大本地数据库解决方案 原文 https://levelup.gitconnected.com/top-5-local-database-solutions-for-flutter-development-6351cd494070 前言 这里列出了最流行的数据库解决方案以及代码示例。 选择正确的数据管理系统对于提高效率和可 extension 性以及影响可用性和…

PyQt5学习笔记--摄像头实时视频展示、多线程处理、视频编解码

目录 1--前言 2--基于Qt Designer设计ui文件 3--视频的编解码操作 4--完整代码 5--结果展示 6--存在的问题 7--参考 1--前言 ① 创建两个线程&#xff0c;主线程为ui线程&#xff0c;子线程用于读取摄像头视频&#xff0c;将处理后的图像帧数据&#xff08;处理操作可以…

JDBC操作数据库实现增、删、查、改

0.JDBC概念 实际开发中,手动的输入SQL语句是少之又少,大多数情况下是通过编译代码进行来控制自动执行. 具体操作如下: 上述展示有一个【自己写的Mysql客户端】&#xff0c;这种操作是非常容易的&#xff0c;因为各种数据库本身就提供一系列的API&#xff0c;可以让用户很方便…

内存一致性,指令重排序,内存屏障,volatile解析

文章目录为什么会存在“内存可见性”问题重排序与内存可见性的关系as-if-serial语义单线程程序的重排序规则多线程程序的重排序规则happen-before是什么解决方案&#xff1a;内存屏障Volatile关键字解决内存可见性问题的实现原理为什么会存在“内存可见性”问题 下图为x86架构…

如何利用快解析远程访问家庭智能网关

随着家庭宽带用户的暴增&#xff0c;涌现出了许多连接家居设备和控制中心的产品&#xff0c;如家庭智能网关。家庭智能网关是家居智能化的心脏&#xff0c;通过它实现系统的信息采集、信息输入、信息输出、集中控制、远程控制、联动控制等功能。 ​ 智能家庭网关具备智能家居控…

3D-SKIPDENSESEG医学图像分割

蓝色三角、黄色三角、红色三角相对应。 得到第三个feature map&#xff0c;反卷积会恢复到原来的尺寸 Dense block&#xff0c;通道增加了 Transition&#xff0c;池化 用正则表达式把里面的h5文件匹配一下吧 os.path.join()把两个部分的路径拼一下 root_path —data_train *.…

day13_面向对象的三大特征之一(封装)

封装概述 为什么需要封装&#xff1f; 现实生活中&#xff0c;每一个个体与个体之间是有边界的&#xff0c;每一个团体与团体之间是有边界的&#xff0c;而同一个个体、团体内部的信息是互通的&#xff0c;只是对外有所隐瞒。例如&#xff1a;我们使用的电脑&#xff0c;内部…

链表之删除单链表中的重复节点

文章目录删除单链表中的重复节点题目描述解题思路代码实现删除单链表中的重复节点 力扣链接 题目描述 编写代码&#xff0c;移除未排序链表中的重复节点。保留最开始出现的节点。 示例1:输入&#xff1a;[1, 2, 3, 3, 2, 1]输出&#xff1a;[1, 2, 3]示例2:输入&#xff1a;…

潜匿的怪物,你的供应链真的安全吗?

网络钓鱼、DNS欺骗      勒索软件、MITM攻击      在这个网络环境      风声鹤唳的时代      这些网络攻击类型      你一定不会感到陌生      无孔不入,这个词用来形容网络攻击毫不为过。世上没有绝对锋利的矛,同样也没有坚不可摧的盾,即使您养成了安…

这五个适合上班族的副业你知道多少

第二职业赚钱的路子有什么&#xff1f;从理论上讲&#xff0c;第二职业就是一个创业的过程&#xff0c;也遵照自主创业一般规律。可是第二职业是在业余时间和没有灵活运用资源挣钱&#xff0c;和创业有所不同。第二职业门坎变低&#xff0c;更比较发达&#xff0c;因此今天小编…

vmware虚拟机centos7扩容

vmware先进行磁盘扩展 从原来的20G扩展到100G: 扩展磁盘时可能会遇到需要修复磁盘的情况: // 进入vmware安装目录cd D:\开发工具\VMWare\ // 修复, 其中.vmdk文件为虚拟机磁盘文件vmware-vdiskmanager -R "F:\VM_Centos\CentOS 7 64 位.vmdk" 扩展成功&#xff1…

合作对策模型的简单实现

以如下题目作为示例&#xff1a; 一位歌手(S)&#xff0c;一位钢琴家 (P) 和一位鼓手(D) 组成一个小乐队在俱乐部同台演出能得到演出费1000元&#xff0c;若歌手和钢琴家一起演出能得800元。而只有钢琴家和鼓手一起演出能得到650元&#xff0c;钢琴独奏表演能得300元&#xff…

动态加载布局的技巧

文章目录动态加载布局的技巧使用限定符使用最小宽度限定符动态加载布局的技巧 使用限定符 在平板上面大多数时候采用的双页的模式,程序会在左侧列表上显示一个包含子项列表,右侧的面版会显示详细的内容的因为平板具有足够大的屏幕.完全能够显示两页的内容.但是在手机上手机只能…

cookie相关

Cookie是什么? RFC6265,HTTP State Management Mechanism 保存在客户端、由浏览器维护、表示应用状态的HTTP头部: 存放在浏览器中服务器生成Cookie在响应中通过Set-Cookie头部告知客户端客户端得到Cookie后,在同域下,后续请求都会自动将Cookie携带至请求中 cookie使用限制…

Spring【Spring的创建与使用】

Spring【Spring的创建项目与使用】&#x1f34e;一.Spring创建项目&#x1f352;1.1 创建⼀个 Maven 项⽬&#x1f352;1.2 添加 Spring 框架⽀持&#x1f352;1.3 添加启动类&#x1f34e;二.Bean对象的存储与获取&#x1f352;2.1 存储 Bean 对象&#x1f349; 2.1.1 创建 Be…

R语言与RStudio的下载与安装方法

本文介绍R语言及其集成开发环境RStudio的下载、安装方法。 R语言是一个属于GNU操作系统的开源软件&#xff0c;在数据统计与分析、可视化等方面具有优秀的表现&#xff1b;而RStudio则是R语言的集成开发环境&#xff08;IDE&#xff09;&#xff0c;可以帮助我们更好地编辑、调…