mycat全局序列号(主键)及分片配置

mycat全局序列号(主键)及分片配置

1.建全局sequence表

CREATE TABLE `MYCAT_SEQUENCE` (
  `NAME` varchar(50) COLLATE utf8mb4_bin NOT NULL,
  `current_value` int(11) NOT NULL,
  `increment` int(11) NOT NULL DEFAULT '100',
  PRIMARY KEY (`NAME`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

2.插入数据
insert 本用的表名 BALANCE_REPORT
name:要使用全局主键的表名
current_value:是初始值
increment:是每次增长多少
在这里插入图片描述

注意:
1.表名大小问题:mycat默认全是大写
2.increment可能一次增涨多个(比如100个)应用拿到之后自行逐1增长,用完之后再来取,减少mysql数据库压力。如果没用完应用重起了,剩下的丢弃,重新从mysql取,避免主键错乱。

3.修改配置文件

vim /etc/mycat/sequence_db_conf.properties

填写对应表名 BALANCE_REPORT=dn_svc
其中 dn_svc就是后面在schema.xml中配置的datanode
在这里插入图片描述

4.配置schema.xml

vim /etc/mycat/schema.xml

主要是添加: primaryKey="id" autoIncrement="true"

注意:
autoIncrement针对的是primaryKey,跟分片无关;
分片字段是rule="mod-accountID-long"这里决定的。

schema.xml

<schema name="sc_svc" checkSQLschema="false" sqlMaxLimit="100">
        <table name="balance_report" dataNode="dn_svc$1-10" primaryKey="id" rule="mod-accountID-long" splitTableNames ="true" autoIncrement="true">
        </table>
    </schema>


   <!-- 生成 sequence 的节点 -->
    <dataNode name="dn_svc" dataHost="host_svc" database="svc"/>


    <!-- 生成sequnce -->
    <dataHost name="host_svc" balance="0" dbDriver="native" dbType="mysql" maxCon="1000" minCon="10" slaveThreshold="100" switchType="1" writeType="0">
        <heartbeat>select user()</heartbeat>
        <!-- can have multi write hosts -->
        <writeHost host="svchost" url="192.168.88.203:3306" user="root" password="Root@123" />
    </dataHost>

5。配置rule.xml
rule.xml

<tableRule name="mod-accountID-long">
        <rule>
            <columns>account_id</columns>
            <algorithm>rang-long</algorithm>
        </rule>
</tableRule>

<function name="rang-long" class="io.mycat.route.function.AutoPartitionByLong">
        <property name="mapFile">autopartition-long.txt</property>
</function>

autopartition-long.txt

# range start-end ,data node index
# K=1000,M=10000.
0-1000M=0
10000001-2000M=1
20000001-3000M=2
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100389.html原文链接:https://javaforall.net

(0)
上一篇 2021年5月13日 下午2:00
下一篇 2021年5月13日 下午3:00


相关推荐

  • python游戏代码200行_python 贪吃蛇

    python游戏代码200行_python 贪吃蛇python语言,总所周知是比较简单的,而且代码也不会像java那样多,下面就使用python的第三方库pygame进行开发一个贪吃蛇游戏。1.pygame的安装直接在cmd当中使用pipinstallpygame进行安装。或者在pycharm当中自动导入安装也OK2.全局变量的定义在代码当中会使用到很多这种变量的值,直接在最开始进行定义,后面获取变量即可W=600#屏幕宽H=400#高fps=12#帧率size=(W,H)ROW=

    2022年8月11日
    11
  • RDB与AOF的区别

    RDB与AOF的区别AOF 和 RDB 是两种 redis 持久化的机制 RDB RDB 是将支持当前数据的快照存成一个数据文件的持久化机制 1 在生成快照时 将当前进程 fork 出一个子进程 2 然后再子进程中循环所有的数据 将数据写入到二进制文件中 3 当子进程将快照写入临时文件完毕后 用临时文件替换原来的快照文件 然后子进程退出 优点 1 一旦采用该方式 那么你的整个 Redis 数据库将只包含一个文件 这样非常方

    2026年3月17日
    1
  • Markdown中LaTeX公式编号

    Markdown中LaTeX公式编号在 Markdown 中使用 LaTeX LaTeXLATE X 公式时 加上 tag 标签可以生成对应的编号 比如这个代码可以生成 x y z tag 1 1 这样的带编号的公式 比如这个代码可以生成 1 1 x y zx y z tag 1 1 x y z 1 1 这样的带编号的公式 也可以使用 LaTeX LaTeXLATE X 标准的 begin equa

    2026年3月17日
    2
  • html注释快捷键

    html注释快捷键1.选中需要注释的内容—>ctrl+shift+/2.取消注释—>ctrl+shift+\转载于:https://www.cnblogs.com/wyhluckdog/p/10131898.html

    2022年4月27日
    118
  • CS和BS的区别[通俗易懂]

    CS和BS的区别[通俗易懂]1.CS和BS的概念CS,即C/S(Client/Server)结构,是一种客户机和服务器结构。cs也是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。BS即Browser/Server(浏览器/服务器)结构,就是只安装维护一个服务器,而客户端采用浏览器运行软件。2.CS和BS区别1.开发维护成本cs开发维护成本高于bs。因为因为采用cs结构时,对于不同的客户端要开发不同的程序,而且软件安装调试和升级都需要在所有

    2025年10月16日
    4
  • K折交叉验证解释

    K折交叉验证解释所谓 K 折交叉验证 就是将数据集等比例划分成 K 份 以其中的一份作为测试数据 其他的 K 1 份数据作为训练数据 然后 这样算是一次实验 而 K 折交叉验证只有实验 K 次才算完成完整的一次 也就是说交叉验证实际是把实验重复做了 K 次 每次实验都是从 K 个部分选取一份不同的数据部分作为测试数据 保证 K 个部分的数据都分别做过测试数据 剩下的 K 1 个当作训练数据 最后把得到的 K 个实验结果进行平分

    2026年3月17日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号