第一种方案仍然还是基于数据库的自增ID,需要单独使用一个数据库实例,在这个实例中新建一个单独的表:

表结构如下:

CREATE DATABASE `SEQID`;CREATE TABLE SEQID.SEQUENCE_ID (id bigint(20) unsigned NOT NULL auto_increment, stub char(10) NOT NULL default '',PRIMARY KEY (id),UNIQUE KEY stub (stub)
) ENGINE=MyISAM;

可以使用下面的语句生成并获取到一个自增ID

begin;
replace into SEQUENCE_ID (stub) VALUES ('anyword');
select last_insert_id();
commit;

stub字段在这里并没有什么特殊的意义,只是为了方便的去插入数据,只有能插入数据才能产生自增id。而对于插入我们用的是replace,replace会先看是否存在stub指定值一样的数据,如果存在则先delete再insert,如果不存在则直接insert。

这种生成分布式ID的机制,需要一个单独的Mysql实例,虽然可行,但是基于性能与可靠性来考虑的话都不够,业务系统每次需要一个ID时,都需要请求数据库获取,性能低,并且如果此数据库实例下线了,那么将影响所有的业务系统。

为了解决数据库可靠性问题,我们可以使用第二种分布式ID生成方案。

分布式ID-数据库自增ID相关推荐

  1. MySQL分布式ID_分布式唯一ID系列(3)——数据库自增ID机制适合做分布式ID吗

    数据库自增ID机制原理介绍 在分布式里面,数据库的自增ID机制的主要原理是:数据库自增ID和mysql数据库的replace_into()函数实现的.这里的replace数据库自增ID和mysql数据 ...

  2. 8年面试官问到:数据库自增 ID 用完了会咋样?

    有主键 如果你的表有主键,并且把主键设置为自增. 在 MySQL 中,一般会把主键设置成 int 型.而 MySQL 中 int 型占用 4 个字节,作为有符号位的话范围就是 [-2^31,2^31- ...

  3. 解决数据库自增ID的问题

    (1)设置主键自增为何不可取 这样的话,数据库本身是单点,不可拆库,因为id会重复. (2)依赖数据库自增机制达到全局ID唯一 使用如下语句: REPLACE INTO Tickets64 (stub ...

  4. 弃用数据库自增ID,曝光一下我自己用到的解决方法之---终结篇

    我写这篇随笔的目的旨在 澄清我在上一篇随笔 "弃用数据库自增ID,曝光一下我自己用到的解决方法" 中的一些事实与看法,同时,我将继续在并发的问题的作题, 我将在原来的存储过程上得用 ...

  5. 修改自增主键初始化_数据库自增ID用完了会怎么样?

    看到这个问题,我想起当初玩魔兽世界的时候,25H难度的脑残吼的血量已经超过了21亿,所以那时候副本的BOSS都设计成了转阶段.回血的模式,因为魔兽的血量是int型,不能超过2^32大小. 估计暴雪的设 ...

  6. mysql id会用完吗_数据库自增ID用完了会怎样?

    起步 对DBA来说这应该是送分题吧.而我是突如其来的想法想测试下的.正常来说程序员是不会关心自增ID用完的情况的. 以 Mysql 为例,它支持的最大的整型是 unsigned bigint,上限是 ...

  7. mysql数据库自增_mysql数据库自增id用法大全

    在mysql数据库中,使用auto_increment 字段来辅助为自增列赋值. 显示有关msyql自增ID的相关配置信息: 复制代码 代码示例: SHOW VARIABLES LIKE 'auto_ ...

  8. hive sql自动生成id的两种方法随机id和自增id

    文章目录 1.生成自增id:row number() over(order by) 2.随机不重复id: regexp_replace(reflect('java.util.UUID','random ...

  9. 数据库自增id没有从0开始

    /**如有错误,敬请指正**/ 在把本地数据库中的表移植到远程数据库时,遇到一个情况,由于原先的表中有数据,所以只是复制表结构输出为SQL文件,但是在远程,运行这个SQL文件,添加新的数据时,发现自增 ...

  10. repositoryitemlookupedit根据每行的id绑定数据_一种根据数据库自增ID生成唯一ID的解决方案...

    在我们的开发过程中,经常会遇到ID生成的问题,那么这里就介绍一种解决方案,注意这里只适合混淆ID规则,也就是说生成的ID没有任何规则,不适用于订单ID. 一般有序自增主键的ID,极易被爬虫抓取数据,作 ...

最新文章

  1. java 重写set方法_Java程序设计-方法的重写(override)(笔记)
  2. 在Win8中创建热点,共享网络
  3. Swift - 可编辑表格样例(可直接编辑单元格中内容、移动删除单元格)
  4. JavaSE(八)——StringBuffer类、Arrays类、数组排序
  5. webpack+react+es6开发模式
  6. 高效实用Kafka-入门介绍
  7. 主要植物叶片数据集农作物病害数据集
  8. opencv识别圆的代码(转)
  9. IOS KVO与NSNotificationCenter简单使用
  10. FastReport使用一——简介
  11. Java项目开发工具汇总
  12. IIS无法启动,提示另外一个程序正在使用此文件
  13. 最快零基础上手——latex文档标题、一级标题、二级标题、内容搭建
  14. 关于广义相对论与量子力学之我见
  15. 视频教程-opencv应用实例-实战视频教学-计算机视觉
  16. IntelliJ IDEA运行JAVA
  17. 计算机少年宫辅导教师总结,学校信息技术教师的个人工作总结
  18. SpaceBuilder2.0 beta正式上线
  19. java毕业设计诗歌分享平台源码+lw文档+mybatis+系统+mysql数据库+调试
  20. python 创建excel 并保存(两种方法)

热门文章

  1. C#图形处理系列(一)——最简单第一步:逆反处理、二值处理
  2. 关于关闭浏览器Session就丢失的讨论
  3. Win7/Win8.1升级Win10后屏幕一直闪烁怎么办?
  4. iOS UI、Xcode、调试、代码等常见问题总汇(持续更新中)
  5. android Studio 配置LUA 开发环境
  6. poj 3487 zoj 1576 稳定婚姻
  7. 【转摘留用】页面静态化..
  8. Burrow 服务的安装部署
  9. Python 进阶之路 (八) 最用心的推导式详解 (附简单实战及源码)
  10. mysql数据库优化大全