分布式ID-数据库自增ID

分布式ID-数据库自增ID第一种方案仍然还是基于数据库的自增 ID 需要单独使用一个数据库实例 在这个实例中新建一个单独的表 表结构如下 CREATEDATABA SEQID CREATETABLES SEQUENCE ID idbigint 20 unsignedNOTN increment stubchar 10 NOTNULLdefau PRIMARYKEY id UNIQUEKEYstu stub ENGINE

第一种方案仍然还是基于数据库的自增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生成方案。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java实训报告范文_java个人实训总结范文

    java实训报告范文_java个人实训总结范文java 个人实训总结范文总结是把一定阶段内的有关情况分析研究 做出有指导性的经验方法以及结论的书面材料 它在我们的学习 工作中起到呈上启下的作用 让我们一起认真地写一份总结吧 那么总结应该包括什么内容呢 下面是小编整理的 java 个人实训总结范文 希望对大家有所帮助 java 个人实训总结 1 此次只实训了短短的三周 虽说时间很短 但其中的每一天都使我收获很大 受益匪浅 它不但极大地加深了我对一些理论知识

    2025年6月29日
    2
  • JavaScript专题(二)数组去重,会就要会的理直气壮

    JavaScript专题(二)数组去重,会就要会的理直气壮相信当部分开发同学都会遇到这个问题,它的答案有很多种,但是想要真的的回答好这个问题却比较难,我们今天来看看应该怎么回答这个问题。本文篇幅较长,不妨收藏下来慢慢阅读~

    2022年6月16日
    29
  • 从高考落榜生到网络专家

    从高考落榜生到网络专家成功的背后,有着许多不为人知的故事,而正是这些夹杂着泪水和汗水的过去,才成就了一个个走 向成功的普通人——凌晨两点半,早已习惯了一个人坐在电脑前的我,望着屏幕,任思绪在暗夜的包容 下静静流淌,时光仿佛又定格在三年多前的那一刻:“283分”。那是被中国万千学子称为“黑色七 月”中的一天,下班回家的母亲从家门打开后说出的一个数字,虽然早知道自己不会考上大学,但如此 的成绩也多少出乎自己

    2025年8月22日
    2
  • CentOS 中用 Yum 安装、卸载软件

    CentOS 中用 Yum 安装、卸载软件一:Yum简介Yum(全称为YellowdogUpdater,Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。二:常用的Yum命令1、显示已经安装的软件包yumlist…

    2022年6月11日
    32
  • 外贸进出口贸易海关报关管理_进口报关单贸易国怎么填

    外贸进出口贸易海关报关管理_进口报关单贸易国怎么填附加费分摊?发票张数?发票号码???分摊原则单?项?摊□确定选择子项分摊???单张同类摊□确定?执行。。。。。。??单项分摊附加费即直接选择子项将费用加入,修改数据。单项分摊附加费即直接选择子项将费用加入,修

    2022年9月21日
    4
  • Android audio_audiomack安卓版下载

    Android audio_audiomack安卓版下载音频基础知识声音有哪些重要属性呢?响度(Loudness)响度就是人类可以感知到的各种声音的大小,也就是音量。响度与声波的振幅有直接关系。音调(Pitch)音调与声音的频率有关系,当声音的频率越大时,人耳所感知到的音调就越高,否则就越低。音色(Quality)同一种乐器,使用不同的材质来制作,所表现出来的音色效果是不一样的,这是由物体本身的结构特性所决定的。

    2025年8月28日
    5

发表回复

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

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