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。

  • 相关阅读:
    PLSQL WEBSERVICES 发布
    WebService开发指南
    来自10位成功IT人士的23条经验教训
    图片格式区别:png8,png24,jpg,jpeg,gif,webp
    当你在工作中失去动力时该怎么办?
    面向对象的反思
    关于前端面试的一些心得
    有什么好的交友软件吗?求推荐
    区块链开发的11种顶级编程语言
    CSRF的几种防御方法的利弊分析
  • 原文地址:https://www.cnblogs.com/hclabxing/p/5813271.html
Copyright © 2011-2022 走看看