mycat核心配置详解rule.xml配置,以及常用分片算法

用来配置水平切分,以及水平切分规则

image.png


image.png

        name:取名要唯一,最好能通过名字进行描述。

        columns:是分片列,必须是表中存在的列,mycat根据这个列计算,确定当前数据要存放在哪个分片,每一个要分片的表都要定义一个分片列,分片列的选择关系到日后的查询性能和查询逻辑

        algorithm:指定表的分片算法,取<function>的name属性

image.png

        function的name同样要在整个配置文件中是唯一的,并具有一定象征意义的

        class属性是实现分片算法的java类的全名,也就是路径

        count代表分片节点数的总和,这里的意思是将表分成四份




分片算法:

        

image.png

        

image.png

                简单取模

                哈希取模是对分片列进行哈希后取模

                分片枚举是根据某项枚举值进行分片(比如异地生活,根据不同地区id把数据分别存储在不同的片上,使用mycat进行数据路由)

                字符串范围取模分片:比如根据很长的字符串的前几位来分片


        

image.png

        

image.png



        

image.png

        

image.png



        简单取模、哈希无法认为决定数据分片,枚举分片可以:

        

image.png


        

image.png

        mapFile指定文件名,创建到config目录下

        type:

                0.整数型

                非0.字符串

        defaultNode:

                >=0.启用默认节点

                <0.不启用默认节点

        

image.png



        有时候要截取分片列特定长度字符作为分片依据,如订单号后五位、姓名前缀:

        

image.png

        

image.png

        

image.png

        

image.png

相关文章

Mycat是什么?MyCat是一个开源的分布式数据库系统,是一个实...
转自:https://www.cnblogs.com/ivictor/p/5111495.html参考...
1.在数据库做好主从同步的情况下搭建mycat。下载mycat,解压...
集群的服务器列表在10.11.0.210和10.11.0.216中部署mycat和h...
Mycat是什么?·一个彻底开源的,面向企业应用开发的大数据库...
<system>配置Mycat系统参数 <system>  <p...