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


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

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

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

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

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

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




分片算法:

        

        

                简单取模

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

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

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


        

        



        

        



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

        

        

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

        type:

                0.整数型

                非0.字符串

        defaultNode:

                >=0.启用默认节点

                <0.不启用默认节点

        



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