因此,基于分片集的這些機(jī)制和特點(diǎn),建議生產(chǎn)環(huán)境盡量使用分片集群,當(dāng)然前提是你有足夠的硬件資源如CPU、內(nèi)存 和 磁盤 。
3 分片集的數(shù)據(jù)分布策略
MongoDB分片集提供了三種數(shù)據(jù)分布的策略:
(1)基于范圍(Range)
(2)基于哈希(Hash)
(3)基于zone/tag
基于范圍分片
首先,基于范圍的數(shù)據(jù)分片很好理解,通常會(huì)按照某個(gè)字段如創(chuàng)建日期來(lái)區(qū)分不同范圍的數(shù)據(jù)存儲(chǔ) 。

文章插圖
其優(yōu)點(diǎn)是分片范圍的查詢性能足夠好,缺點(diǎn)是存在熱點(diǎn)數(shù)據(jù)問(wèn)題,數(shù)據(jù)的分布可能會(huì)不夠均勻 。
基于哈希分片
其次,基于Hash的分片策略也比較好理解,通常會(huì)按照某個(gè)字段的哈希值來(lái)確定數(shù)據(jù)存儲(chǔ)的位置 。

文章插圖
其優(yōu)點(diǎn)是數(shù)據(jù)的分布會(huì)比較均勻,缺點(diǎn)則是范圍查詢的效率會(huì)較低,因?yàn)榭赡軙?huì)涉及在多個(gè)節(jié)點(diǎn)讀取數(shù)據(jù)并聚合 。
基于Zone/Tag分片
最后,基于zone/tag的數(shù)據(jù)分片則有點(diǎn)不太好理解,它不是一般我們所熟知的分片方式 。所謂基于zone/tag的數(shù)據(jù)分片,一般是指在兩地三中心或異地多活的應(yīng)用場(chǎng)景中,如果數(shù)據(jù)存在地域性的訪問(wèn)需求,那么就可以自定義Zone來(lái)進(jìn)行分片 。
通過(guò)打tag的方式,可以實(shí)現(xiàn)將為某個(gè)地域服務(wù)的數(shù)據(jù)存儲(chǔ)到指定地域的數(shù)據(jù)分片上(比如CountryCode=NewYork),最終實(shí)現(xiàn)本地讀和本地寫的目的 。
4 分片集群的搭建
由于MongoDB分片集群的搭建偏運(yùn)維,我這里就不做實(shí)踐了 。
網(wǎng)上有很多相關(guān)的操作指南,有興趣的童鞋可以自行搜索 。
5 總結(jié)
本文簡(jiǎn)單介紹了MongoDB分片集的機(jī)制及原理,最后介紹了MongoDB數(shù)據(jù)分片的三種基本策略 。
下一篇,我們會(huì)總結(jié)MongoDB應(yīng)用開發(fā)的最佳實(shí)踐,它也會(huì)是本系列的最后一篇文章 。
參考資料
唐建法,《MongoDB高手課》(極客時(shí)間)
郭遠(yuǎn)威,《MongoDB實(shí)戰(zhàn)指南》(圖書)
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問(wèn)題,請(qǐng)您及時(shí)就醫(yī)或請(qǐng)專業(yè)人士給予相關(guān)指導(dǎo)!
「愛(ài)刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對(duì)您有所幫助:- mongodb是nosql數(shù)據(jù)庫(kù)嗎 12 NoSQL | MongoDB入門實(shí)戰(zhàn)教程
- mongodb是nosql數(shù)據(jù)庫(kù)嗎 14 NoSQL | MongoDB入門實(shí)戰(zhàn)教程
- 做雙眼皮有幾種方法
- 最有激情的健身運(yùn)動(dòng)是什么
- 終端凈水,只為能飲用健康好水
- it翻譯 IT是什么意思?
- 阿西吧是什么意思 阿西吧為什么在韓國(guó)是罵人話 韓語(yǔ)罵人的話中文讀法
- 狗帶是什么意思什么梗 狗帶是go die的諧音
- 網(wǎng)絡(luò)語(yǔ)拔草是什么意思?種草是什么意思 微博上長(zhǎng)草種草拔草是什么梗 種草族心理
- 氪金是什么意思什么梗 氪金是大量充值的意思
