zoukankan      html  css  js  c++  java
  • mycat 自增id笔记

    1、schema.xml添加表信息

    <table name="tt2" primaryKey="id" autoIncrement="true" dataNode="dn3,dn2,dn1" rule="mod-long"/>

    2、创建表

    CREATE TABLE tt2 (
    id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
    nm INT(10) UNSIGNED NOT NULL,
    PRIMARY KEY (id)
    ) ENGINE=MYISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

    3、添加 sequence_conf.properties信息

    TT2.HISIDS=
    TT2.CURID=0
    TT2.MINID=0
    TT2.MAXID=1000000

    4、重启 mycat

    5、测试

    INSERT INTO tt2 (nm) VALUES (1);

    INSERT INTO tt2 (nm) VALUES (5);
    SELECT * FROM tt2;

    SELECT LAST_INSERT_ID();

    主键生成策略 :http://blog.csdn.net/wangfanbb/article/details/50887108

      既然要分库分表那么全局唯一主键也是我们需要考虑的问题,我所知道的和有使用经验的有如下几种技术:

    问题

    可行性

    基于Redis

    单点问题,redis重启问题等

    较高,公司有项目使用

    给予DB(每次生成多个使用时去取出来)

    单点问题,并发量问题

    低并发,数据量较小的可以使用

    UUID

    暂用存储空间比较大,非可排序的,体现不出增长的趋势

    较高

    twitter snowflake

    Xx年以后可能存在重复问题,需要配置生产参数

    高,分布式的没单点故障问题,时间上是递增的。推荐

    基于DB步长的方式

    不是所有数据库都支持

      我选择的是snowflake。

    也可参考 微信序列号生成器架构设计及演变:http://www.infoq.com/cn/articles/wechat-serial-number-generator-architecture。

  • 相关阅读:
    区分浏览器的刷新与关闭(网上查到,记录一下)
    echarts中设置markPoint
    Vue自定义指令,ref ,sync,slot
    手动封装on,emit,off
    数组的一些操作
    ES6-字符串扩展-padStart(),padEnd()
    MongoDB 数据库
    新地方
    使用echarts踩过的一些坑
    IE无法访问vue项目
  • 原文地址:https://www.cnblogs.com/hclabxing/p/5813271.html
Copyright © 2011-2022 走看看