新聞中心
mongoDb某個(gè)字段不滿足遞增或者遞減應(yīng)該怎么創(chuàng)建索引?
遞增遞減與否,與索引沒(méi)什么必然聯(lián)系。 就好比說(shuō)難道字段是字符串類型的,就建不了索引了? 你問(wèn)題里說(shuō)的應(yīng)該是一個(gè)數(shù)字格式的、且有重復(fù)值的字段吧?

成都創(chuàng)新互聯(lián)主要從事成都做網(wǎng)站、網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)甘谷,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):18980820575
mongo里面索引幾乎與傳統(tǒng)數(shù)據(jù)庫(kù)一樣。 你這種情況,建立一個(gè)普通索引(默認(rèn)為非唯一索引)就好了。
如何使用MongoDb實(shí)現(xiàn)分布式Id?
傳統(tǒng)數(shù)據(jù)庫(kù)軟件開(kāi)發(fā)中,主鍵自動(dòng)生成技術(shù)各大數(shù)據(jù)庫(kù)對(duì)于該需求也提供了相應(yīng)的支持,比如MySQL的自增。
分布式ID特性包括:唯一性:確保生成的ID是全網(wǎng)唯一的;高可用性:確保任何時(shí)候都能正確的生成ID。
github上對(duì)分布式ID這個(gè)特性的描述是:分布式唯一和時(shí)間序列。
主要方案方案包括
MongoDB的ObjectId設(shè)計(jì)成輕量型的,不同的機(jī)器都能用全局唯一
它的格式:
前4 個(gè)字節(jié)是從標(biāo)準(zhǔn)紀(jì)元開(kāi)始的時(shí)間戳,單位為秒。時(shí)間戳,與隨后的5 個(gè)字節(jié)組合起來(lái),提供了秒級(jí)別的唯一性。由于時(shí)間戳在前,這意味著ObjectId 大致會(huì)按照插入的順序排列。這對(duì)于某些方面很有用,如將其作為索引提高效率。這4 個(gè)字節(jié)也隱含了文檔創(chuàng)建的時(shí)間。絕大多數(shù)客戶端類庫(kù)都會(huì)公開(kāi)一個(gè)方法從ObjectId 獲取這個(gè)信息。
接下來(lái)的3 字節(jié)是所在主機(jī)的唯一標(biāo)識(shí)符。通常是機(jī)器主機(jī)名的散列值。這樣就可以確保不同主機(jī)生成不同的ObjectId,不產(chǎn)生沖突。 為了確保在同一臺(tái)機(jī)器上并發(fā)的多個(gè)進(jìn)程產(chǎn)生的ObjectId 是唯一的,接下來(lái)的兩字節(jié)來(lái)自產(chǎn)生ObjectId 的進(jìn)程標(biāo)識(shí)符(PID)。
機(jī)器ID是服務(wù)器主機(jī)標(biāo)識(shí),通常是機(jī)器主機(jī)名的散列值。
到此,以上就是小編對(duì)于mongodb創(chuàng)建唯一索引的問(wèn)題就介紹到這了,希望這2點(diǎn)解答對(duì)大家有用。
新聞標(biāo)題:如何使用MongoDb實(shí)現(xiàn)分布式Id?
網(wǎng)頁(yè)路徑:http://www.5511xx.com/article/cojgpip.html


咨詢
建站咨詢
