MyCat使用日记 -- 单库分片

今天记录一篇MyCat的使用日记。

背景:生产上有一张表的数据量可以轻轻松松上千万,随即想到要做分表。本贴实现的是单库分片,并按照id序列

对于MyCat的介绍这里就不做赘述了,有很多帖子介绍,下面讲一下MyCat从安装到配置再到使用的过程。

一、下载MyCat:

    这里是官网,本次使用的是1.6.5版本,也建议使用此版本以上的稳定版本,连接在下方:

    MyCat 官网:http://www.mycat.org.cn/   下载地址:http://dl.mycat.org.cn/1.6.5/

    下载直接解压,目录结构如图:

        

 

二、修改相关配置文件 schema.xml、server.xml、rule.xml

    1. server.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mycat:server SYSTEM "server.dtd">
<mycat:server xmlns:mycat="http://io.mycat/">
	<system>
		<property name="useSqlStat">0</property>  <!-- 1为开启实时统计、0为关闭 -->
		<property name="useGlobleTableCheck">0</property>  <!-- 1为开启全加班一致性检测、0为关闭 -->
		<property name="sequnceHandlerType">2</property>
		<!--默认为type 0: DirectByteBufferPool | type 1 ByteBufferArena-->
		<property name="processorBufferPoolType">0</property>
		<!--分布式事务开关,0为不过滤分布式事务,1为过滤分布式事务(如果分布式事务内只涉及全局表,则不过滤),2为不过滤分布式事务,但是记录分布式事务日志-->
		<property name="handleDistributedTransactions">0</property>
		<property name="useOffHeapForMerge">1</property>
		<!--单位为m-->
		<property name="memoryPageSize">1m</property>
		<!--单位为k-->
		<property name="spillsFileBufferSize">1k</property>
		<property name="useStreamOutput">0</property>
		<!--单位为m-->
		<property name="systemReserveMemorySize">384m</property>
		<!--是否采用zookeeper协调切换  -->
		<property name="useZKSwitch">true</property>
	</system>

	<user name="root">
		<property name="password">123456</property>
		<property name="schemas">UICSR</property>
	</user>
    <user name="root2">
		<property name="password">123456</property>
		<property name="schemas">DEMO,DEMO1,DEMO2</property>
	</user>
</mycat:server>

        system标签中的使用默认即可,主要配置一下user标签中的内容

        name和password:表示使用工具或jdbc连接时的用户名和密码

        schemas:别名,用来在schema.xml文件中引用的,也可以指定多个别名,但注意:一定要大写,小写会有问题!

    2. schema.xml:

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">

    <!--mycat中表的设置-->
	<schema name="UICSR" checkSQLschema="false" sqlMaxLimit="100">
        <!--name:表名;primaryKey:主键;autoIncrement:自增长主键;subTables:单库分片配置;rule:分片策略-->
		<table name="express_user" primaryKey="ID" autoIncrement="true" dataNode="node1" subTables="express_user$1-3" rule="auto-sharding-long" />
        <!--生成主键用的表-->
 		<table name="mycat_sequence" primaryKey="NAME"  dataNode="node1" ruleRequired="false"/>
        <!--以下为不需要分片的表,数据库中所有的表都要配置进来-->
 		<table name="call_details" dataNode="node1" ruleRequired="false"/>
		<table name="call_loss_record" dataNode="node1" ruleRequired="false"/>
	</schema>
    <!--分库的节点配置-->
	<dataNode name="node1" dataHost="host1" database="dbname1" />


    <!--数据库连接配置-->
	<dataHost name="host1" maxCon="1000" minCon="10" balance="0"
			  writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
		<heartbeat>select user()</heartbeat>
		<!-- 读写分
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值