mycat schema.xml 配置详解

本文深入探讨了Mycat的schema.xml配置文件,包括schema、table、childTable、dataNode、dataHost等核心元素。schema节点定义逻辑库,table节点用于逻辑表配置,childTable用于E-R分片子表关联。dataNode定义数据节点,表示数据分片,如例子中的'lch3307.db1.dn1'。dataHost是最底层标签,指定数据库实例、读写分离和心跳检测。writeHost和readHost分别定义写和读的数据库实例,当writeHost宕机时,系统会自动切换到备用writeHost。
摘要由CSDN通过智能技术生成

schema.xml详解

摘自 mycat权威指南

  1. schema节点
    在这里插入图片描述
checkSQLschema
当该值设置为 true 时,如果我们执行语句**select * from TESTDB.travelrecord;**则MyCat会把语句修改为**select * from
travelrecord;**。即把表示schema的字符去掉,避免发送到后端数据库执行时报**(ERROR 1146 (42S02): Table
‘testdb.travelrecord’ doesn’t exist)。**
不过,即使设置该值为 true ,如果语句所带的是并非是schema指定的名字,例如:**select * from db1.travelrecord;** 那么
MyCat并不会删除db1这个字段,如果没有定义该库的话则会报错,所以在提供SQL语句的最好是不带这个字段。

sqlMaxLimit
当该值设置为某个数值时。每条执行的SQL语句,如果没有加上limit语句,MyCat也会自动的加上所对应的值。例如设置值为
100,执行**select * from TESTDB.travelrecord;**的效果为和执行**select * from TESTDB.travelrecord limit 100;**相同。
不设置该值的话,MyCat默认会把查询到的信息全部都展示出来,造成过多的输出。所以,在正常使用中,还是建议加上一个
值,用于减少过多的数据返回。
当然SQL语句中也显式的指定limit的大小,不受该属性的约束。
需要注意的是,如果运行的schema为非拆分库的,那么该属性不会生效。需要手动添加limit语句。
  1. table节点
    Table 标签定义了MyCat中的逻辑表,所有需要拆分的表都需要在这个标签中定义。
## 定义这个逻辑表所属的dataNode, 该属性的值需要和dataNode标签中name属性的值相互对应。如果需要定义的dn过多可以使
用如下的方法减少配置:
<table name="travelrecord" dataNode="multipleDn$0-99,multipleDn2$100-199" rule="auto-sharding-long" ></table>
<dataNode name="multip
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值