二、myca实战之实践

一、配置

mycat配置文件目录:mycat/conf

最主要的配置文件:server.xml、schema.xml、rule.xml

1、server.xml

配置跟实例数据库的连接信息,数据库用户名、密码、数据库名称,如下:

<user name="root" defaultAccount="true">
	<property name="password">123456</property>
	<property name="schemas">supply</property>
</user>
	
<user name="dbloginname">
	<property name="password">123456</property>
	<property name="schemas">supply,operations,unionauth,crm,message,product,orders,pay,es</property>
	<!--<property name="readOnly">true</property>-->
</user>

2、schema.xml

配置分片节点(dataNode)信息,配置示例如下:

<dataNode name="dn1_supply" dataHost="localhost1" database="supply" />
<dataNode name="dn2_supply" dataHost="localhost2" database="supply" />
<schema name="supply" checkSQLschema="false" sqlMaxLimit="10000000" dataNode="dn1_supply">
		<table name="yf_brand" primaryKey="id" type="global" dataNode="dn1_supply" />
		<table name="yf_product_sku" rule="sharding-by-murmur-supplier-id" dataNode="dn1_product,dn2_product" />
</schema>

3、rule.xml

配置分片规则(rule),具体规则可参看上一篇《mycat实战之理论》,配置示例如下

<tableRule name="rule2">
	<rule>
		<columns>user_id</columns>
		<algorithm>func1</algorithm>
	</rule>
</tableRule>

algorithm(算法)节点是配置分片的规则算法。

二、启动关闭

mycat启动暂停命令

[ops@pre-databases bin]$ ./mycat stop

Stopping Mycat-server...

Stopped Mycat-server.

[ops@pre-databases bin]$ ./mycat start

Starting Mycat-server...

[ops@pre-databases bin]$ ./mycat status

Mycat-server is running (3803).

 

四、实际开发注意点

1、对于分片的表,sum、count函数支持存在缺陷,例如表分了两片的话,sum,count出来会出现两条记录。改进方式是对sum、count出来的结果集再次sum、count。

2、唯一约束,因为分片了,数据库的唯一约束只在单个表中支持,分片之后如果需要对所有分片进行唯一约束的话,需要借助其他组件。如redis存储唯一约束值,在插入数据库时先校验redis是否存在该key。

3、对两个结果集进行join操作时,需要区别两个关联的结果集在同一个分片。否则join出来的结果集会出现数据错误。

4、设计表结构时,尽量冗余不会变更的字段。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值