schema.xml 作为 MyCat 中重要的配置文件之一,管理着 MyCat 的逻辑库、表、分片规则、DataNode 以及 DataSource。
·
schema 标签
<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100"></schema>
schema 标签用于定义 MyCat 实例中的逻辑库。MyCat 可以有多个逻辑库,每个逻辑库都有自己的相关配置。如果不配置 schema 标签,所有的表配置,会属于同一个默认的逻辑库。如下所示:
<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1">
</schema>
<schema name="USERDB" checkSQLschema="false" sqlMaxLimit="100">
<table name="company" dataNode="dn10,dn11,dn12" rule="auto-sharding-long" ></table>
</schema>
·
schema 标签的相关属性
属性 | 值 | 描述 |
---|---|---|
dataNode | String | 绑定逻辑库到某个具体的 database 上。 |
checkSQLschema | Boolean | 当该值为 true 时,执行语句"select * from TESTDB.travelrecord" ,MyCat 会把语句修改为"select * from travelrecord;"。即把表示 schema 的字符去掉,避免发送到后端数据库执行时报错:“ERROR 1146 (42S02): Table ‘testdb.travelrecord’ doesn’t exist”。 建议: SQL 语句最好是不带这个字段。 |
sqlMaxLimit | Integer | 当设置为某个数值时,每条 SQL 语句,如果没有加上 limit,MyCat 会自动的加上所对应的值。 如果未设置,MyCat 默认会把查询到的信息全部都展示出来,造成过多的输出。 注意: 如果运行的 schema 为非拆分库,那么该属性不会生效,需要手动添加 limit。 |
·
table 标签
<table name=