婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > MongoDB分片鍵的選擇和案例實(shí)例詳解

MongoDB分片鍵的選擇和案例實(shí)例詳解

熱門標(biāo)簽:廣州長(zhǎng)安公司怎樣申請(qǐng)400電話 蘋果汽車租賃店地圖標(biāo)注 怎么投訴地圖標(biāo)注 云南外呼系統(tǒng) 老虎洗衣店地圖標(biāo)注 杭州人工電銷機(jī)器人價(jià)格 濟(jì)南電銷機(jī)器人加盟公司 電銷機(jī)器人是什么軟件 呼和浩特電銷外呼系統(tǒng)加盟

前言

分片鍵選擇不好,應(yīng)用程序就無(wú)法利用分片集群所提供的諸多優(yōu)勢(shì)。在這種情況下,插入和查詢的性能都會(huì)顯著下降。下決定時(shí)一定要嚴(yán)肅,一旦選擇了分片鍵,就必須堅(jiān)持選擇,分片鍵是不可以修改的。要讓分片鍵提供好的體驗(yàn),部分源自了解怎樣才算一個(gè)好的分片鍵。

本文將詳細(xì)介紹關(guān)于MongoDB分片鍵的選擇和案例,分享出來(lái)供大家參考學(xué)習(xí),下面話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧。

MongoDB版本:3.6

一、分片鍵類別

1.升序片鍵

升序片鍵例如:日期時(shí)間字段、自增字段。

2.隨機(jī)分發(fā)片鍵

隨機(jī)分發(fā)片鍵例如:用戶名、郵件名、UUID、MD5值或者是其它的一些沒(méi)有規(guī)律的值的列。

3.基于位置的片鍵

基于位置的片鍵例如:IP、經(jīng)緯度、居住地址等。

二、分片策略

1.范圍分片

創(chuàng)建分片時(shí),只在主分片上創(chuàng)建了一個(gè)塊{ "username" : { "$minKey" : 1 } } -->> { "username" : { "$maxKey" : 1 } } on : rs-a Timestamp(1, 0)

至少得3個(gè)不同的值才會(huì)進(jìn)行塊切分,相同的值只會(huì)在一個(gè)分片塊中。比如對(duì)一個(gè)name字段進(jìn)行范圍分區(qū),如果一直往name字段插入"a",那么它會(huì)一直存儲(chǔ)主分片的{ "username" : { "$minKey" : 1 } } -->> { "username" : { "$maxKey" : 1 } }中,直到name出現(xiàn)三個(gè)不同的值,比如“a”,“b”,“c”這個(gè)時(shí)候就會(huì)進(jìn)行分片。當(dāng)然這只是測(cè)試,現(xiàn)實(shí)中不會(huì)對(duì)這種粗粒度的字段單獨(dú)做分片。

2.hashed分片

創(chuàng)建分片時(shí),默認(rèn)在每個(gè)分片上創(chuàng)建了兩個(gè)數(shù)據(jù)塊。但是當(dāng)前每個(gè)塊上面是沒(méi)有數(shù)據(jù)的。

3.組合分片

組合分片是比較好的一種分片的選擇,好的組合分片可以同時(shí)解決熱點(diǎn)和隨機(jī)讀IO問(wèn)題。例如:

sh.shardCollection("test.bbbb",{"username":1,"_id":1});

4.標(biāo)簽分片

比如對(duì)于一些日志非查詢文檔,可以通過(guò)標(biāo)簽將其只插入到某個(gè)分片中。例如

sh.addTagRange("test.log",{ "_id" : { "$minKey" : 1 } }, { "_id" : { "$maxKey" : 1 } },"tag_rs-a");

可以在config庫(kù)中的tag文檔中查看設(shè)置的標(biāo)簽信息。

use config

db.tags.find();

三、標(biāo)簽

可以通過(guò)標(biāo)簽將特定范圍的數(shù)據(jù)在指定的分片中。

{ "_id" : 18000 } -->> { "_id" : 26000 }范圍的數(shù)據(jù)保存到rs-a的分片上,這部分?jǐn)?shù)據(jù)跨越了兩個(gè)數(shù)據(jù)塊。

1.為分片指定tag

sh.addShardTag("rs-a","tag_rs-a");

sh.addShardTag("rs-b","tag_rs-b");

sh.addShardTag("rs-c","tag_rs-c");

2.創(chuàng)建規(guī)則

sh.addTagRange("test.person",{ "_id" : 18000 }, { "_id" : 26000 },"tag_rs-a");

數(shù)據(jù){ "_id" : 18000 } -->> { "_id" : 26000 }已經(jīng)被移動(dòng)到了rs-a分片上。

四、分片案例

分片策略沒(méi)有絕對(duì)的好壞,針對(duì)不同的業(yè)務(wù)場(chǎng)景選擇不同的分片策略。

1.分片情景

1.所有的分片讀寫都均勻。

2.數(shù)據(jù)訪問(wèn)均勻,而不是隨機(jī)性的訪問(wèn);由于新數(shù)據(jù)都是先在內(nèi)存中創(chuàng)建,盡量避免需要從磁盤訪問(wèn)新數(shù)據(jù)。

3.盡量避免由于數(shù)據(jù)塊的數(shù)據(jù)移動(dòng)導(dǎo)致數(shù)據(jù)從磁盤加載到內(nèi)存中從而導(dǎo)致熱數(shù)據(jù)被清理出內(nèi)存。

4.組合字段分片可能會(huì)是理想的分片方案。

分片鍵公式: {coarseLocality:1,search:1}

coarseLocality:應(yīng)該是一個(gè)大粒度的局部字段。比如MONTH月份升序字段。

search:是一個(gè)經(jīng)常用來(lái)查找的字段。

2.分片案例

案例1.使用日期字段、自增字段、時(shí)間戳分片的問(wèn)題

有一個(gè)網(wǎng)站瀏覽記錄表,表中有一個(gè)createtime字段用來(lái)記錄每天記錄的插入時(shí)間。

對(duì)于這類文檔不太適合使用createtime字段作為分片字段,因?yàn)樽x寫可能都會(huì)集中在最新的分片上。使用自增字段也存在同樣的問(wèn)題

案例2.大粒度字段分片問(wèn)題

有一個(gè)五大洲的用戶文檔表,表中有一個(gè)continent字段存儲(chǔ)用戶所在洲。

如果使用continent作為分片字段會(huì)存在以下幾個(gè)問(wèn)題:

1.分片的粒度太大了,會(huì)導(dǎo)致最后每一個(gè)分片的數(shù)據(jù)都非常的大而且沒(méi)有再分的可能。而且也有可能會(huì)導(dǎo)致磁盤空間不夠的情況。

2.可能會(huì)導(dǎo)致某個(gè)分片在某個(gè)時(shí)間點(diǎn)的訪問(wèn)量遠(yuǎn)遠(yuǎn)大于其他分片。

案例3:使用月份和用戶名進(jìn)行組合分片

有一個(gè)用戶操作記錄集合,業(yè)務(wù)需要查詢用戶最近一個(gè)月操作記錄。集合有month,userName鍵

使用{month:1,userName:1}分片情景如下:

month保證熱數(shù)據(jù)優(yōu)于內(nèi)存。

userName:保證數(shù)據(jù)的隨機(jī)性,避免集中過(guò)熱問(wèn)題。

存在的問(wèn)題:對(duì)于新文檔由于很多月份還不存在,會(huì)導(dǎo)致新數(shù)據(jù)都是往最后一個(gè)分片上面插入數(shù)據(jù),存在熱讀寫問(wèn)題,最后通過(guò)均衡器對(duì)數(shù)據(jù)塊進(jìn)行移動(dòng)。

數(shù)據(jù)測(cè)試

sh.shardCollection("test.news",{"month":1,"username":1 });

----插入1月數(shù)據(jù)10萬(wàn)記錄

for(var i=0;i100000;i++){db.news.insert({"_id":i,"month":"1","username":Math.random(),"createdate":new Date()})}

----插入2月數(shù)據(jù)10萬(wàn)記錄

for(var i=100000;i200000;i++){ db.news.insert({"_id":i,"month":"2","username":Math.random(),"createdate":new Date()})}

新數(shù)據(jù)往一直往最末尾的分片(rs-a)上插,因?yàn)檫@個(gè)時(shí)候"month":2在最大的分片上。 { "month" : "1", "username" : 0.9258836896982892 } -->> { "month" : { "$maxKey" : 1 }, "username" : { "$maxKey" : 1 } } on : rs-a Timestamp(3, 1)

數(shù)據(jù)插入完之后均衡器將rs-c上的一個(gè)塊分給了rs-a

----插入全部月份數(shù)據(jù)。

for(var a=1;a13;a++)
{
for(var i=0;i20000;i++){ db.news.insert({"month":a,"username":Math.random(),"createdate":new Date()})}
}

保證每個(gè)月的數(shù)據(jù)都均勻的分布到不同的分片上,并且隨著時(shí)間的推移舊的數(shù)據(jù)可能就不會(huì)被使用也不會(huì)被移動(dòng)。

注意:這個(gè)案例比較特殊,因?yàn)閷?duì)于日志集合比較舊的數(shù)據(jù)基本上是不會(huì)被查詢的,所以借助了month鍵作為了分片鍵保證了熱數(shù)據(jù)優(yōu)先存儲(chǔ)于內(nèi)存,對(duì)于整張表都是熱數(shù)據(jù)比如登入用戶集合就不適合這種分片方式,hashed會(huì)更適合。

案例4:使用隊(duì)列

隊(duì)列不僅在容災(zāi)中非常的有用,而且在常規(guī)的突發(fā)流量下也非常的有用。隊(duì)列可以吸收短時(shí)間內(nèi)爆發(fā)的大量請(qǐng)求。也可以把隊(duì)列反過(guò)來(lái)用,即緩存MongoDB返回的結(jié)果。

比如:RabbitMQ

案例5:使用用戶名和創(chuàng)建時(shí)間進(jìn)行組合分片

用戶名:保證數(shù)據(jù)的隨機(jī)性,避免熱點(diǎn)問(wèn)題

創(chuàng)建時(shí)間:保證單個(gè)數(shù)據(jù)塊過(guò)大問(wèn)題

五、設(shè)計(jì)集合注意事項(xiàng)

1.集合的鍵數(shù)量應(yīng)該是固定的,包括嵌套文檔的數(shù)量都應(yīng)該提前規(guī)劃好。

2.盡量都是做原子更新,而不是某個(gè)鍵的值受其它鍵值更新的影響。比如num1,num2,total如果num鍵的值是經(jīng)常會(huì)被更新的那么這種設(shè)計(jì)就不好,因?yàn)閠otal也要對(duì)應(yīng)跟著變,而mongodb本身計(jì)算能力就很弱。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

您可能感興趣的文章:
  • 如何為MongoDB添加分片副本集
  • 分布式文檔存儲(chǔ)數(shù)據(jù)庫(kù)之MongoDB分片集群的問(wèn)題
  • MongoDB搭建高可用集群的完整步驟(3個(gè)分片+3個(gè)副本)
  • Mongodb副本集和分片示例詳解
  • MongoDB分片集群部署詳解
  • MongoDB分片在部署與維護(hù)管理中常見(jiàn)的事項(xiàng)總結(jié)大全
  • 詳解MongoDB4.0構(gòu)建分布式分片群集
  • MongoDB分片詳解
  • mongodb分片技術(shù)_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
  • mongodb3.4集群搭建實(shí)戰(zhàn)之高可用的分片+副本集
  • 深入理解MongoDB分片的管理
  • Mongodb 刪除添加分片與非分片表維護(hù)
  • MongoDB 主分片(primary shard)相關(guān)總結(jié)

標(biāo)簽:自貢 興安盟 遼陽(yáng) 無(wú)錫 玉林 泰安 雞西 廈門

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MongoDB分片鍵的選擇和案例實(shí)例詳解》,本文關(guān)鍵詞  MongoDB,分片,鍵,的,選擇,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MongoDB分片鍵的選擇和案例實(shí)例詳解》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于MongoDB分片鍵的選擇和案例實(shí)例詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美调教femdomvk| 色综合久久久久综合体| 欧美日韩在线不卡| 久久精品免费观看| 日韩av电影免费观看高清完整版 | 盗摄精品av一区二区三区| 在线视频国内自拍亚洲视频| 国产精品毛片久久久久久| 人人爽香蕉精品| www激情久久| 国产69精品久久久久毛片| 国产欧美日韩中文久久| www.激情成人| 一区二区三区产品免费精品久久75| 亚洲欧美综合网| 国产精品伊人色| 亚洲成年人网站在线观看| 亚洲一区在线免费观看| 国产人成亚洲第一网站在线播放| 丰满白嫩尤物一区二区| 欧美视频一区二区| 久久99精品久久久久婷婷| 91影院在线观看| 亚洲黄色免费网站| 99国产精品视频免费观看| 色偷偷成人一区二区三区91| 日韩精品亚洲一区| 一区二区视频在线看| 欧美不卡激情三级在线观看| 色婷婷精品大在线视频| 美脚の诱脚舐め脚责91| 亚洲私人影院在线观看| 国产精品亚洲人在线观看| 中文字幕免费一区| 欧美日韩国产首页在线观看| 高清不卡在线观看av| 久久久久亚洲蜜桃| 欧美在线看片a免费观看| 成人性生交大片免费看中文网站| 久久国产精品区| 亚洲第一二三四区| 亚洲一级二级在线| 99精品热视频| 丁香桃色午夜亚洲一区二区三区| 天天av天天翘天天综合网| 亚洲综合无码一区二区| 欧美国产日本韩| 久久久久9999亚洲精品| 国产美女久久久久| 亚洲精品一二三| 99视频精品全部免费在线| 成人国产在线观看| 国产成人日日夜夜| 成人av在线播放网址| 91久久香蕉国产日韩欧美9色| 日本电影欧美片| 欧美一区二区在线观看| 欧美一区日韩一区| 久久亚洲欧美国产精品乐播| 欧美最新大片在线看| 99这里只有精品| 欧美一二三四区在线| 欧洲av一区二区嗯嗯嗯啊| 欧美二区三区91| 欧美一区二区三区思思人| 欧美一区二区啪啪| 国产午夜精品一区二区三区嫩草| 亚洲国产日韩一级| 久久国产福利国产秒拍| 免费在线视频一区| 99久久夜色精品国产网站| 波多野结衣精品在线| www国产亚洲精品久久麻豆| 2020日本不卡一区二区视频| 亚洲成人一二三| 成人做爰69片免费看网站| 色综合久久66| 日韩欧美在线综合网| 欧美日韩一级片网站| 国产一区二区伦理片| 日韩免费视频一区二区| 亚洲一区二区三区视频在线| 国产主播一区二区| 在线观看91精品国产麻豆| 亚洲三级在线观看| 国产乱码精品一区二区三区五月婷 | 蜜臀av性久久久久蜜臀av麻豆| 精品乱码亚洲一区二区不卡| 亚洲一区视频在线| 色屁屁一区二区| 亚洲黄色性网站| 国产露脸91国语对白| 色先锋久久av资源部| 国产精品国产三级国产有无不卡 | 亚洲男人电影天堂| 美女免费视频一区| 国产欧美精品一区二区三区四区| 伊人夜夜躁av伊人久久| 老色鬼精品视频在线观看播放| 亚洲天堂中文字幕| 一本色道久久综合亚洲aⅴ蜜桃 | 一区二区三区四区不卡视频| 精品在线播放免费| 国产日韩欧美麻豆| 高清国产一区二区三区| 一二三四区精品视频| 欧美午夜电影网| 亚洲精品美国一| 99久久综合精品| 午夜精品久久久久久久99水蜜桃 | 美女视频网站久久| 欧美电影免费观看高清完整版在线观看 | 日本欧美一区二区| 久久久亚洲精品一区二区三区| 国产精品一区一区三区| 日韩理论在线观看| 在线观看视频一区二区| 久久www免费人成看片高清| 国产午夜精品理论片a级大结局| 99国产精品久| 免费成人av在线播放| 尤物av一区二区| 粉嫩绯色av一区二区在线观看| 国产精品一区二区果冻传媒| 中日韩免费视频中文字幕| 国产精品18久久久久久vr| 无吗不卡中文字幕| 喷白浆一区二区| 亚洲h动漫在线| 日韩成人午夜精品| 日本不卡123| 成人av片在线观看| 一区二区免费在线| 视频一区二区不卡| 久久99精品国产麻豆不卡| 国内欧美视频一区二区| 成熟亚洲日本毛茸茸凸凹| 成人av网址在线| 美女在线观看视频一区二区| 亚洲欧美日韩在线| 天天av天天翘天天综合网 | 久久九九全国免费| 国产精品丝袜一区| 偷偷要91色婷婷| 中文字幕乱码久久午夜不卡| 中文字幕日韩一区| 午夜精品一区二区三区三上悠亚| 久久99国产精品久久99| av中文字幕亚洲| 91黄色激情网站| 91精品国产91久久综合桃花| 在线免费观看日本欧美| 337p亚洲精品色噜噜噜| 国产亚洲欧美日韩在线一区| 国产欧美日韩综合| 亚洲美女精品一区| 国内成人自拍视频| 成人精品电影在线观看| 欧美欧美欧美欧美首页| 精品国产人成亚洲区| 一区二区三区在线免费| 天天色综合天天| 欧美天堂一区二区三区| 国产精品情趣视频| 日韩福利电影在线| 亚洲在线视频一区| 在线播放91灌醉迷j高跟美女| 欧美成人精品高清在线播放| 美日韩一区二区| 日韩视频永久免费| 国产在线视频不卡二| 欧洲人成人精品| 日韩欧美一卡二卡| 日本高清不卡在线观看| ●精品国产综合乱码久久久久| 久久国产免费看| 欧美欧美欧美欧美| 亚洲影视资源网| 在线看日韩精品电影| 亚洲少妇屁股交4| 99国产精品视频免费观看| 97国产一区二区| 亚洲桃色在线一区| 亚洲国产精品t66y| 视频一区欧美日韩| 91精品欧美福利在线观看| 91丨porny丨蝌蚪视频| 成人三级伦理片| 国产大片一区二区| 国产丶欧美丶日本不卡视频| 国产精品99久久久久久似苏梦涵| 国产夫妻精品视频| 色综合欧美在线视频区| 欧洲亚洲精品在线| 欧美成人bangbros| 亚洲欧洲精品一区二区三区不卡| 国产成人免费网站| 97se亚洲国产综合在线| 精品国产sm最大网站免费看| 国产精品麻豆99久久久久久|