博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyCat_sequence配置
阅读量:7025 次
发布时间:2019-06-28

本文共 2633 字,大约阅读时间需要 8 分钟。

hot3.png

sequence配置

非数据库

优缺点

  • MyCat重启之后sequence会恢复到初始值
  • 本地加载,读取速度快

配置sequnceHandlerType

server.xml 配置

0

配置 sequence_conf.properties

GLOBAL.HISIDS=GLOBAL.MINID=10001GLOBAL.MAXID=20000GLOBAL.CURID=10000// MINID 表示最小 ID 值;// MAXID 表示最多 ID 值;// CURID 表示弼前 ID 值;// HISIDS表示使用过的历史分段,一般无特殊需要可不配置

数据库

配置sequnceHandlerType

server.xml 配置

1

创建相关的表和function

//-------创建表CREATE TABLE MYCAT_SEQUENCE (    NAME VARCHAR (50) NOT NULL,    current_value INT NOT NULL,    increment INT NOT NULL DEFAULT 1,    PRIMARY KEY (NAME)) ENGINE = INNODB;INSERT INTO MYCAT_SEQUENCE (    NAME,    current_value,    increment)VALUES    ('GLOBAL', 0, 1);//---- 创建mycat_seq_currvalDROP FUNCTION IF EXISTS mycat_seq_currval;DELIMITER / CREATE FUNCTION mycat_seq_currval (seq_name VARCHAR(50))RETURNS VARCHAR(64)DETERMINISTICBEGINDECLARE retval VARCHAR(64);SET retval = "- 999999999,null";SELECT    concat(        CAST(current_value AS CHAR),        ",",        CAST(increment AS CHAR)    ) INTO retvalFROM    MYCAT_SEQUENCEWHERE    NAME = seq_name;RETURN retval;END;//---- 创建 mycat_seq_setvalDROP FUNCTION IF EXISTS mycat_seq_setval;DELIMITER / CREATE FUNCTION mycat_seq_setval(seq_name VARCHAR (50),VALUE INTEGER)RETURNS VARCHAR(64)DETERMINISTICBEGIN    UPDATE MYCAT_SEQUENCE        SET current_value=VALUE        WHERE   NAME=seq_name;RETURN mycat_seq_currval(seq_name);END;//---- 创建 mycat_seq_nextvalDROP FUNCTION IF EXISTS mycat_seq_nextval;DELIMITER /CREATE FUNCTION mycat_seq_nextval(seq_name VARCHAR(50)) RETURNS VARCHAR(64) DETERMINISTICBEGIN    UPDATE MYCAT_SEQUENCE    SET current_value=current_value+increment    WHERE NAME=seq_name;RETURN mycat_seq_currval(seq_name);END;

配置sequence_db_conf.properties

指定时在哪个节点上执行sequence

GLOBAL=dn0

修改mysql的配置文件my.cnf

//-- [mysqld]下添加如下配置//-- 如果不添加如下配置并发下会取重复...log_bin_trust_function_creators=1

测试代码

public static void testSeq(DataSourceFactory ds) {        PreparedStatement pst = null;        Connection con = null;        try {            con = ds.getConnection();            String sql = "select next value for MYCATSEQ_GLOBAL as nextval";            pst = con.prepareStatement(sql);            ResultSet result = pst.executeQuery();            while (result.next()) {                String id = result.getString("nextval");                System.out.println(id);            }        } catch (Exception e) {            e.printStackTrace();        } finally {            try {                pst.close();                con.close();            } catch (SQLException e) {                e.printStackTrace();            }        }    }

转载于:https://my.oschina.net/sandant/blog/698905

你可能感兴趣的文章
我的友情链接
查看>>
ibatis mybatis sql语句配置 符号不兼容 大于号 小于号
查看>>
Alipay 开源 SofaRPC
查看>>
jquery的extend与fn.extend
查看>>
自动化测试应该学什么
查看>>
语音识别对比分析
查看>>
Linux命令之 wc
查看>>
在virtualbox中安装的ubuntu系统 共享数据空间分配的数据
查看>>
WinRAR4.11激活
查看>>
Oracle常用单行函数
查看>>
运行浏览器的最高版本
查看>>
PHP中解决ajax请求session过期退出登录问题
查看>>
拆分功能:第一步,建立 会员管理系统
查看>>
我的友情链接
查看>>
CXF+Spring+Hibernate实现RESTful webservice服务端示例
查看>>
HTML网络效果收集---HTML
查看>>
css @语法,@规则 @import @charset @font-face @fontdef @media @page
查看>>
asp.net系统过滤器、自定义过滤器
查看>>
CSS3 Animation
查看>>
重新认识java-忽视的注释
查看>>