MyCat04-schema.xml配置详解

schema标签

schema标签用于定义mycat中的逻辑库,可以定义多个逻辑库

name:自定义逻辑库的库名
checkSQLschema:当该值设置为 true 时,如果执行带有逻辑库名的select语句时,mycat会自动把逻辑库名去掉。
select * from DB01.TB_ORDER;

如果为false,就要use切换数据库,再执行sql
use DB01;
select * from TB_ORDER;

sqlMaxLimit:如果没有指定limit进行查询,最多查询的记录数量

schema标签(table标签)

定义逻辑表,可以定义多个逻辑表

<table name="travelrecord" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" ></table>

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

dataNode标签

定义逻辑表所属的dataNode,该值要和下边dataNode标签的name属性的值相对应,
多个dataNode名字可以用multipleDn$0-99这种形式表示

<dataNode name="dn1" dataHost="dhost1" database="db01" ></dataNode>
<dataNode name="dn2" dataHost="dhost2" database="db01" ></dataNode>

name:定义数据节点名称
dataHost:数据库实例名称,与dataHost标签中的name属性值一致
database:定义分片所属数据库

dataHost标签

直接定义具体的数据库实例,读写分离,心跳语句

<dataHost name="dhost2" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1"  slaveThreshold="100">
    <heartbeat>select user()</heartbeat>
    <writeHost host="dhost1" url="jdbc:mysql://192.168.4.55:3306?useSSL=false&amp;serverTimezone=Asia/Shanghai&amp;characterEncoding=utf8" user="admin" password="123456"></writeHost>
</dataHost>

name:唯一标识,供上层标签使用
maxCon/minCon:最大/最小连接数
balance:负载均衡策略,0 1 2 3
writeType:写操作分发方式(0:轮询,写操作给到第一个writeHost,挂了再切换到第二个 1:随机分发到writeHost)
dbDriver:数据库驱动,支持native,jdbc
posted @   立勋  阅读(17)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示