如何使用MongoDb实现分布式Id?

mongoDb某个字段不满足递增或者递减应该怎么创建索引?

递增递减与否,与索引没什么必然联系。 就好比说难道字段是字符串类型的,就建不了索引了? 你问题里说的应该是一个数字格式的、且有重复值的字段吧?

成都创新互联主要从事成都做网站、网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务甘谷,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575

mongo里面索引几乎与传统数据库一样。 你这种情况,建立一个普通索引(默认为非唯一索引)就好了。

如何使用MongoDb实现分布式Id?

传统数据库软件开发中,主键自动生成技术各大数据库对于该需求也提供了相应的支持,比如MySQL的自增。

分布式ID特性包括:唯一性:确保生成的ID是全网唯一的;高可用性:确保任何时候都能正确的生成ID。

github上对分布式ID这个特性的描述是:分布式唯一和时间序列。

主要方案方案包括

MongoDB的ObjectId设计成轻量型的,不同的机器都能用全局唯一

它的格式:

前4 个字节是从标准纪元开始的时间戳,单位为秒。时间戳,与随后的5 个字节组合起来,提供了秒级别的唯一性。由于时间戳在前,这意味着ObjectId 大致会按照插入的顺序排列。这对于某些方面很有用,如将其作为索引提高效率。这4 个字节也隐含了文档创建的时间。绝大多数客户端类库都会公开一个方法从ObjectId 获取这个信息。

接下来的3 字节是所在主机的唯一标识符。通常是机器主机名的散列值。这样就可以确保不同主机生成不同的ObjectId,不产生冲突。 为了确保在同一台机器上并发的多个进程产生的ObjectId 是唯一的,接下来的两字节来自产生ObjectId 的进程标识符(PID)。

机器ID是服务器主机标识,通常是机器主机名的散列值。

到此,以上就是小编对于mongodb创建唯一索引的问题就介绍到这了,希望这2点解答对大家有用。

文章题目:如何使用MongoDb实现分布式Id?
URL标题:http://www.zyruijie.cn/qtweb/news21/4371.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联