Mycat——项目中整合Mycat遇到的问题总结

1、开发中遇到的问题

历史数据表随着业务的增长已经有4-5个亿的数据,之前是按照定时任务每月创建一个表,插入的时候根据当前的时间来将数据插入到当前表,联查的时候跨月查是个问题,刚好有个新项目尝试使用了Mycat来解决该问题,采用两个库对历史表进行分片。

2、Mycat整合步骤

2.1在两台服务器上安装Mysql(这里用mysql-5.7.26)(https://note.youdao.com/s/KlTcX694

2.2安装Mycat(这里使用1.6版本)

        解压之后进入Mycat的conf目录进行配置:

2.2.1 schema.xml 

<schema name="xinchai" checkSQLschema="false" sqlMaxLimit="100">
		<!-- auto sharding by id (long) -->
		<!-- <table name="user_profile" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" /> -->

		<!-- global table is auto cloned to all defined data nodes ,so can join 
			with any table whose sharding node is in the same data node -->
		
		<table name="history" primaryKey="id"  autoIncrement="true" dataNode="distribute(dn1$0-6,dn2$0-6)" rule="sharding-by-date-customer" />
		<table name="mycat_sequence" dataNode="dn10" autoIncrement="true" primaryKey="id"></table>
		
	</schema>

注意: 

1、关键的有两个表,一个是业务表history和序列表mycat_sequence

 2、dataNode为数据节点,在<dataNode />中配置,我用了两个服务器,配置了14个分片节点,如下:

    <dataNode name="dn10" dataHost="datahost1" database="test" />
	<dataNode name="dn11" dataHost="datahost1" database="test-db1" />
	<dataNode name="dn12" dataHost="datahost1" database="test-db2" />
	<dataNode name="dn13" dataHost="datahost1" database="test-db3" />
	<dataNode name="dn14" dataHost="datahost1" database="test-db4" />
	<dataNode name="dn15" dataHost="datahost1" database="test-db5" />
	<dataNode name="dn16" dataHost="datahost1" database="test-db6" />
	<dataNode name="dn20" dataHost="datahost2" database="test" />
	<dataNode name="dn21" dataHost="datahost2" database="test-db1" />
	<dataNode name="dn22" dataHost="datahost2" database="test-db2" />
	<dataNode name="dn23" dataHost="datahost2" database="test-db3" />
	<dataNode name="dn24" dataHost="datahost2" database="test-db4" />
	<dataNode name="dn25" dataHost="datahost2" database="test-db5" />
	<dataNode name="dn26" dataHost
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值