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&serverTimezone=Asia/Shanghai&characterEncoding=utf8" user="admin" password="123456"></writeHost>
</dataHost>
name:唯一标识,供上层标签使用
maxCon/minCon:最大/最小连接数
balance:负载均衡策略,0 1 2 3
writeType:写操作分发方式(0:轮询,写操作给到第一个writeHost,挂了再切换到第二个 1:随机分发到writeHost)
dbDriver:数据库驱动,支持native,jdbc
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 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)