mycat2 分库分表配置

1. 创建schema

mycat控制台输入

/*+ mycat:createSchema{
	"customTables":{},
	"globalTables":{},
	"normalTables":{},
	"schemaName":"test",
	"shardingTables":{},
	"targetName":"prototype"
} */;
schemaName:物理库的库名
targetName: 物理库所在的集群,默认应该将prototype集群内的MySQL连接 设置为物理库连接

创建成功后,mycat 会映射物理库的所有单表,可以检测是否成功

2.创建数据源

创建两组数据源

/*+ mycat:createDataSource{
"name":"r0",
"url":"jdbc:mysql://127.0.0.1:3306/mysql",
"user":"root",
"password":"xxxx"
} */;

/*+ mycat:createDataSource{
"name":"w0",
"url":"jdbc:mysql://127.0.0.1:3306/mysql",
"user":"root",
"password":"xxxx"
} */;


/*+ mycat:createDataSource{
"name":"r1",
"url":"jdbc:mysql://127.0.0.1:3307/mysql",
"user":"root",
"password":"xxxx"
} */;

/*+ mycat:createDataSource{
"name":"w1",
"url":"jdbc:mysql://127.0.0.1:3307/mysql",
"user":"root",
"password":"xxxx"
} */;

3.添加集群配置

集群c1 为3306的库 c2为3307的库

/*! mycat:createCluster{"name":"c0","masters":["w0"],"replicas":["r0"]} */;
/*! mycat:createCluster{"name":"c1","masters":["w1"],"replicas":["r1"]} */;

4.创建分库分表

执行成功之后,mycat2 会在 配置的数据源中自动创建库和表


/*+ mycat:createTable{
	"schemaName":"创建schema时的schemaName",
	"shardingTable":{
		"createTableSQL":"create table sharding  xxxxxxxxxxxxx  (建表语句)",
		"function":{
        	"properties":{
	          "dbNum":1,
	          "mappingFormat":"c${targetIndex}/数据库名_${dbIndex}/表名_${index}",
	          "tableNum":10,
	          "tableMethod":"mod_hash(id)",
	          "storeNum":1,
	          "dbMethod":"mod_hash(id)"
      		}
    	},
		"partition":{
			
		}
	},
	"tableName":"表名"
} */;
schemaName:创建schema时的schemaName
createTableSQL: mysql建表语句
dbNum: 分库数量
mappingFormat: 映射配置  c${targetIndex}  映射集群 
tableNum:分表数量
tableMethod:分表算法(分表字段)
dbMethod:分库算法(分库字段)
storeNum:等于dbNum,

至此顺利的话,就分库分表成功了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
分库分表是一种常见的数据库架构设计,可以提高系统的性能和可扩展性。以下是基于 MySQLMyCat 如何进行分库分表配置: 1. 安装 MyCat:在官网下载 MyCat 并解压,在 conf 目录下创建两个文件夹:schema 和 rule。schema 目录用于存放分库分表配置文件,rule 目录用于存放分片规则的配置文件。 2. 配置数据源:在 schema 目录下创建一个新的 XML 配置文件,配置数据源信息,包括数据库地址、端口、用户名、密码等。例如: ``` <schema name="db1" checkSQLschema="false" sqlMaxLimit="100"> <dataNode name="dn1" dataHost="localhost1" database="db1"/> <table name="t_order" primaryKey="order_id" dataNode="dn1" rule="rule1"/> </schema> ``` 其,dataNode 表示数据节点,可以配置多个数据节点,用于分散数据存储。table 表示数据表,可以指定数据节点以及分片规则。 3. 配置分片规则:在 rule 目录下创建一个新的 XML 配置文件,配置分片规则信息。例如: ``` <rule name="rule1"> <tableRule name="t_order" ruleAlgorithm="mod-long"> <ruleColumn>order_id</ruleColumn> <ruleValue>dn${order_id % 2 + 1}</ruleValue> </tableRule> </rule> ``` 其,ruleAlgorithm 表示分片算法,可以选择 mod、hash、range 等。ruleColumn 表示分片列,ruleValue 表示分片值。 4. 启动 MyCat:在 MyCat 的 bin 目录下执行 start.bat 或 start.sh 启动 MyCat。此时,MyCat 会读取 schema 和 rule 目录下的配置文件,并根据配置文件进行分库分表的数据路由。 需要注意的是,分库分表的设计需要根据业务场景和数据量进行合理的划分,避免出现瓶颈和单点故障。此外,分片规则的设计也需要考虑数据均衡和查询效率等因素。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值