`
gaojingsong
  • 浏览: 1212218 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【Mycat 1.6之TableRule分片规则介绍】

阅读更多

1、TableRule介绍

1)schema.xml文件

<!-- 配置逻辑数据库名字,以及配置需要分片的表,也可以配置字典全局表或者不分片的表,总之你要纳入mycat管理的表就要在此配置 -->

<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">

<!-- auto sharding by id (long) -->

<table name="travelrecord" dataNode="dn1,dn2,dn3" rule="rule1" />

<!-- dataNode配置数据节点名字 ,分片规则参照rule.xml -->

<table name="t_gaojs" dataNode="dn1,dn2,dn3" rule="mod-long" />

</schema>

2)Rule.xml文件

<mycat:rule xmlns:mycat="http://io.mycat/">

<tableRule name="rule1">

<rule>

<columns>id</columns>

<algorithm>func1</algorithm>

</rule>

</tableRule>

 

<function name="func1" class="io.mycat.route.function.PartitionByLong">

<property name="partitionCount">8</property>

<property name="partitionLength">128</property>

</function>

</mycat:rule>

tableRule配置是

name 为schema.xml 中table 标签中对应的 rule="rule1" ,也就是配置表的分片规则,

columns 是表的切分字段: id创建日期。

algorithm 是规则对应的切分规则:映射到function 的name即func1

 

function 配置是分片规则的配置。

name 为切分规则的名称,名字人员取,但是需要与tableRule 中匹配。

class 是切分规则对应的切分类,写死,需要哪种规则则配置哪种,例如本例子是PartitionByLong分片:org.opencloudb.route.function.PartitionByLong

property 标签是切分规则对应的不同属性,不同的切分规则配置不同。partitionCount、partitionLength



 

2、自定义分片函数

一般情况是extends AbstractPartitionAlgorithm implements  RuleAlgorithm

分布式数据库系统中,分片规则用于定义数据与分片的路由关系,也就是 insert,delete,update,select

的基本 sql 操作中,如何将 sql 路由到对应的分片执行。

 

分片规则类 PartitionByDate 的配置属性与类的成员变量对应。 Mycat 的配置文件装载机制中,会根据 property 自动设置类的成员变量,因此只要设置了 Set…方法就可

以赋值。

 

 

init 方法:

主要处理每种规则的自定义处理

 

calculate 方法:

计算路由分片的核心方法,计算出偏移量即是分片节点,所有的分片节点编号都是从 0 开始编码。

 

 

calculateRange 方法:

calculateRange 方法默认根据继承的抽象类规则,可不实现,默认实现是获取分片字段的值连续范围内的所有分片,主要用于类似:update test where id<5; 这种语句中,通过解析条件 id<15 解析出所有的 id 值域分

片的对应关系,依次路由执行,[1->dn0,2->dn1,3->dn2,4->dn3].

package io.mycat.route.function;

import io.mycat.config.model.rule.RuleAlgorithm;

/**

 * 这是一个自定义的分片函数框架

 * @author gaojingsong<mail:525354786@qq.com>

 *

 */

public class MyFun  extends AbstractPartitionAlgorithm implements RuleAlgorithm {

@Override

public void init() {

super.init();

}

 

@Override

public Integer calculate(String columnValue) {

return null;

}

}



 

  • 大小: 59.2 KB
  • 大小: 36.7 KB
0
1
分享到:
评论

相关推荐

    Mycat 1.6 稳定版-linux环境 gz包.7z

    2. schema.xml:定义数据表的分片规则,以及各个节点的映射关系。 3. sys.properties:系统级别的配置,如JVM参数、日志级别等。 五、数据分片与读写分离 在schema.xml中,我们可以设置分片规则,如哈希分片、范围...

    【Mycat1.6之操作SQLServer案例】

    【Mycat1.6与SQLServer操作案例详解】 Mycat是一款开源的分布式数据库中间件,它在大型分布式系统中扮演着数据库分片的角色,能够有效地解决单个数据库性能瓶颈的问题。Mycat 1.6是其一个重要版本,提供了更稳定、...

    mycat1.6windows+linux.zip

    mycat1.6windows+linux.zip, 我就很不理解,为什么好多人上传的资料,下载都需要积分。0积分能咋地?官网能访问但是下载不了,后再巧合下在另外一个网站上下载的,我在这里给大家分享下。不需要积分也不需要花钱,...

    mycat1.6.7.1.rar

    - 配置:进入解压后的目录,编辑配置文件`server.xml`,设置数据库连接信息、分片规则等。 - 启动:执行`bin/startup.sh`启动Mycat服务器。 2. **Mycat的分片策略** - 平行分片:根据用户自定义的算法,将数据...

    mycat1.6.7.5.zip

    3. **配置Mycat**:修改Mycat目录下的conf目录中的server.xml、schema.xml、rule.xml等配置文件,定义数据源、分片规则、路由策略等。 4. **初始化Mycat**:在Mycat目录下执行`bin/startup.sh`启动Mycat服务。首次...

    mycat 1.6 win和linux版

    6. **配置文件详解**:如`server.xml`、`schema.xml`、`rule.xml`等,分别用于配置服务器、数据库分片规则和SQL路由规则。 7. **Mycat监控**:Mycat提供了监控界面,可以实时查看系统状态、连接数、SQL执行情况等,...

    Mycat1.6源码

    Mycat在接收到SQL请求后,会根据预定义的规则(如分片策略)进行解析,确定数据应该存取于哪个数据库实例,这个过程称为SQL路由。1.6版本的SQL路由机制更加智能,能处理更复杂的查询场景。 4. **事务管理** Mycat...

    Mycat-1.6.7.3.zip

    其中,`conf`目录包含了一系列配置文件,如`schema.xml`,这是Mycat的核心配置文件,定义了数据节点、库、表的映射关系以及分片规则。我们需要在此文件中修改数据库的密码,确保Mycat能够正确连接到后端的数据库...

    Mycat1.6 安装步骤

    Mycat作为一款开源的数据库中间件,主要用于解决大型系统中的数据分库分表问题,通过它能够将大量的数据分散到多个物理数据库中,以此来提升系统的并发处理能力和数据读写性能。在实际应用中,Mycat可以广泛应用于...

    Mycat 1.6权威指南.pdf和1.5的word版

    而1.6版本在此基础上进行了优化,增强了分片策略的灵活性,支持更多自定义规则。 其次,Mycat的路由机制是其核心之一。1.5版中,路由规则根据SQL语句进行解析,将请求定向到正确的数据节点。1.6版则进一步提升了...

    mycat-1.6.7.6_BYMONTH.zip

    基于MyCat1.6.7.6正式版的源码修改的,支持subTables的按月分表正则配置 subTables=“ tableName_$202101-?” subTableWay="BYMONTH" rule="sharding-by-month" 表示从202101月份开始进行分表处理,?表示当前日期的...

    MySql 中间件 Mycat 1.6.7.5 - release- win.tar windows 程序

    2. 修改`conf/server.xml`配置文件,配置数据库连接信息、分片规则等。 3. 初始化Mycat,执行`bin/startup.sh`启动脚本。 4. 使用Web管理界面或命令行工具进行监控和管理,`bin/mysqldump.sh -h localhost -P 8066...

    mycat1.6.7.4

    同时,Mycat提供了一种无缝的数据分片策略,确保数据的完整性。 2. **读写分离**:Mycat可以自动将读操作路由到只读节点,写操作路由到主节点,有效缓解主库压力,提高系统性能。这有助于实现高可用性和高读取速度...

    linux的Mycat安装包1.6.7.4版本

    你需要编辑`conf`目录下的`server.xml`和`schema.xml`文件,配置数据源、分片规则、端口号等信息。这些配置需要根据你的数据库架构和业务需求来设定。 4. **启动Mycat**:配置完成后,可以使用以下命令启动Mycat: ...

    mycat1.6jar包反编译的源码

    《深入解析mycat1.6源码:一次技术探索之旅》 Mycat,作为一款开源的分布式数据库中间件,广泛应用于大型分布式系统中,它实现了数据分片、读写分离、故障切换等功能,为高并发、大数据量的场景提供了优秀的解决...

    Mycat-server-1.6.7.6-release-windows-linux.rar

    安装和配置Mycat时,需要修改相应的配置文件,如schema.xml定义数据节点和表的分片规则,server.xml配置Mycat服务器的启动参数。启动Mycat服务后,客户端应用程序可以像连接普通数据库一样连接Mycat,而背后的复杂分...

    【Mycat1.6之操作Oracle案例】

    【Mycat1.6与Oracle操作案例详解】 在IT行业中,数据库管理是核心部分,尤其是在大型企业级应用中。Mycat是一个开源的分布式数据库中间件,它提供了数据库分片、读写分离、故障切换等功能,适用于高并发、大数据量...

    解决mycatJDBC8驱动连接Mycat1.6报错 Unknown system variable 'query_cache_size'

    标题中的问题涉及到的是在使用Mycat数据中间件时,尝试使用JDBC 8驱动连接到Mycat 1.6版本时遇到的一个错误:`Unknown system variable 'query_cache_size'`。这个问题出现的原因在于MySQL 8.0版本中移除了`query_...

    Mycat1.6.7.3版本

    1.6.7.3版本进一步优化了分片策略,支持更多的分片规则,如范围分片、哈希分片等,使得数据分布更加均衡,同时提高了查询效率。 其次,Mycat的路由与数据处理能力在1.6.7.3中得到了加强。它能根据SQL语句自动选择...

    mycat-server 1.6 源码包 可直接运行

    分片规则(rule)通常包括哈希分片、范围分片、列表分片等,这些规则直接影响数据的分布和查询效率。 其次,`rule.xml`文件则包含了更细粒度的路由规则,如SQL的解析和改写,以及事务的处理方式。Mycat支持自定义...

Global site tag (gtag.js) - Google Analytics