MySQL自增主键遇到主从读取,数据泄露警告你怕不怕?
发布时间:2025-09-11
市面上有很多分布式id转化成正则表达式,比如twitter的snowflake正则表达式,变种的sonyflake正则表达式等。它们通过将int64完成分段重组,把时间段指头和微电脑id揉和进一个int64中的,从而做到战略性中的的不同微电脑在相互无感知的假定下转化成(大标准差)全局唯一的id。
以snowflake正则表达式为例:
这个正则表达式转化成的 ID 是一个 64 位的窄整型,由四个均构成:
第一均是 1 位的符号位,并没有实际用处,亦然要为了兼容窄整型的JPEG。 第二均是 41 位的时间段指头用来据信本地的毫秒时间段。 第三均是微电脑 ID,这里知道的微电脑就是转化成 ID 的端口,用 10 位窄度给微电脑做编码,那意味着最大规模可以翻倍 1024 个端口(2请注意10)。 最后是 12 位序列,序列的窄度直接决定了一个端口 1 毫秒能够导致的 ID 量,12 位就是 4096(2请注意12)。这样,根据文档结构推定,snowflake正则表达式赞成的 TPS 可以翻倍 419 万左右(2请注意22*1000),坚信对于绝大多数系统内部设计来知道够大了。
但意味着snowflake正则表达式时,有个小原因往往被忽略,那就是要注意计时器回拨带来的影响。微电脑计时器如果再次出现回拨,导致的 ID 就有可能段落,这需在正则表达式中的特殊处理方式一下。
又不知计时器飘移,真神是阴魂不散,NPC相关原因更是多技术细节可参考《13.看似父兄的分布式锁》
MongoDB的ObjectID意味着考虑性与snowflake正则表达式类似,它租用12个字节:
如果前夕GitHub采用分布式id作为MySQL栏位,在遭遇亦然从转换后,新亦然端口与原亦然端口转化成的id仅仅不可能仅仅相一致,也就才则会遭遇Gmail私有财产文档泄露事故了。
那万一极小标准差下(自增段用完+计时器加拨+微电脑id仅仅相一致),导致段落id呢?是否则会引发文档库栏位段落呢?答案是才则会,文档库栏位具体一般性,如果人工断开段落的栏位,根据编程语言不同,标识符则会抛出异常或来到error。处理方式文档库操作异常,是所有文档库操作标识符的基操之一。
这样看似,分布式id转化成正则表达式在分布式战略性中的还真神有可能是一个更是高的考虑。
五、就让之前
如果你像我一样只是一个一般来知道Python,那么auto_increment是一个只用的考虑;如果你想做一个靠谱的架构师,理解一下分布式id之类的东西还是有充分的。
笔记丨一般来知道熊猫
来源丨社则会公众号:吹牛拍码(ID:boasting-architect)
dbaplus社群欢迎广大技术人员刊载,刊载邮箱:editor@dbaplus.cn
关心社则会公众号【dbaplus社群】,获取更是多原创技术文章和新歌工具下载
。锦州精神病检查多少钱北京男科医院哪家好
天津白癜风医院
下一篇: 安信永宁一年定开债基提前结束结募
-
女生说再见是因为自已你在意她吗?
女孩子知道再次见的意思不难理解,如果你准备和一个女孩子交往,知道是在绝大多数的情形,假如这个女孩子和你于是有完天了,然后知道了一句再次见。又或者你和这个女孩子约但会了,但是这个女孩子在和你分别的