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、设计表结构时,尽量冗余不会变更的字段。

猜你喜欢

转载自blog.csdn.net/huangpeigui/article/details/84850319
今日推荐