MongoDB入門教程之分片技術(shù)詳解
在mongodb里面存在另一種集群,就是分片技術(shù),跟sql server的表分區(qū)類似,我們知道當(dāng)數(shù)據(jù)量達(dá)到T級(jí)別的時(shí)候,我們的磁盤,內(nèi)存就吃不消了,針對(duì)這樣的場(chǎng)景我們?cè)撊绾螒?yīng)對(duì)。
一:分片
mongodb采用將集合進(jìn)行拆分,然后將拆分的數(shù)據(jù)均攤到幾個(gè)片上的一種解決方案。
下面我對(duì)這張圖解釋一下:
人臉: 代表客戶端,客戶端肯定說,你數(shù)據(jù)庫(kù)分片不分片跟我沒關(guān)系,我叫你干啥就干啥,沒什么好商量的。
mongos: 首先我們要了解”片鍵“的概念,也就是說拆分集合的依據(jù)是什么?按照什么鍵值進(jìn)行拆分集合....
好了,mongos就是一個(gè)路由服務(wù)器,它會(huì)根據(jù)管理員設(shè)置的“片鍵”將數(shù)據(jù)分?jǐn)偟阶约汗芾淼膍ongod集群,數(shù)據(jù)
和片的對(duì)應(yīng)關(guān)系以及相應(yīng)的配置信息保存在"config服務(wù)器"上。
mongod: 一個(gè)普通的數(shù)據(jù)庫(kù)實(shí)例,如果不分片的話,我們會(huì)直接連上mongod。
二: 實(shí)戰(zhàn)
首先我們準(zhǔn)備4個(gè)mongodb程序,我這里是均攤在C,D,E,F(xiàn)盤上,當(dāng)然你也可以做多個(gè)文件夾的形式。
1:開啟config服務(wù)器
先前也說了,mongos要把mongod之間的配置放到config服務(wù)器里面,理所當(dāng)然首先開啟它,我這里就建立2222端口。
2: 開啟mongos服務(wù)器
這里要注意的是我們開啟的是mongos,不是mongod,同時(shí)指定下config服務(wù)器,這里我就開啟D盤上的mongodb,端口3333。
3:?jiǎn)?dòng)mongod服務(wù)器
對(duì)分片來說,也就是要添加片了,這里開啟E,F(xiàn)盤的mongodb,端口為:4444,5555。
4: 服務(wù)配置
哈哈,是不是很興奮,還差最后一點(diǎn)配置我們就可以大功告成。
<1> 先前圖中也可以看到,我們client直接跟mongos打交道,也就說明我們要連接mongos服務(wù)器,然后將4444,5555的mongod
交給mongos,添加分片也就是addshard()。
這里要注意的是,在addshard中,我們也可以添加副本集,這樣能達(dá)到更高的穩(wěn)定性。
<2>片已經(jīng)集群了,但是mongos不知道該如何切分?jǐn)?shù)據(jù),也就是我們先前所說的片鍵,在mongodb中設(shè)置片鍵要做兩步
①:開啟數(shù)據(jù)庫(kù)分片功能,命令很簡(jiǎn)單 enablesharding(),這里我就開啟test數(shù)據(jù)庫(kù)。
②:指定集合中分片的片鍵,這里我就指定為person.name字段。
5: 查看效果
好了,至此我們的分片操作全部結(jié)束,接下來我們通過mongos向mongodb插入10w記錄,然后通過printShardingStatus命令
查看mongodb的數(shù)據(jù)分片情況。
這里主要看三點(diǎn)信息:
① shards: 我們清楚的看到已經(jīng)別分為兩個(gè)片了,shard0000和shard0001。
② databases: 這里有個(gè)partitioned字段表示是否分區(qū),這里清楚的看到test已經(jīng)分區(qū)。
③ chunks: 這個(gè)很有意思,我們發(fā)現(xiàn)集合被砍成四段:
無窮小 —— jack0,jack0 ——jack234813,jack234813——jack9999,jack9999——無窮大。
分區(qū)情況為:3:1,從后面的 on shardXXXX也能看得出。
- mongodb中非常好用的Aggregate入門教程
- MongoDB入門教程之C#驅(qū)動(dòng)操作實(shí)例
- MongoDB入門教程之常用的運(yùn)維技術(shù)介紹
- MongoDB入門教程之主從復(fù)制配置詳解
- MongoDB入門教程之索引操作淺析
- MongoDB入門教程之聚合和游標(biāo)操作介紹
- MongoDB入門教程之細(xì)說MongoDB數(shù)據(jù)庫(kù)的增刪查改操作
- MongoDB入門教程之Windows下的MongoDB數(shù)據(jù)庫(kù)安裝圖解
- MongoDB入門教程(包含安裝、常用命令、相關(guān)概念、使用技巧、常見操作等)
- MongoDB 簡(jiǎn)單入門教程(安裝、基本概念、創(chuàng)建用戶)
相關(guān)文章
MongoDB安裝使用并實(shí)現(xiàn)Python操作數(shù)據(jù)庫(kù)
Mongo最大的特點(diǎn)是他支持的查詢語(yǔ)言非常強(qiáng)大,其語(yǔ)法有點(diǎn)類似于面向?qū)ο蟮牟樵冋Z(yǔ)言,幾乎可以實(shí)現(xiàn)類似關(guān)系數(shù)據(jù)庫(kù)單表查詢的絕大部分功能,而且還支持對(duì)數(shù)據(jù)建立索引。本文就詳細(xì)的介紹一下如何使用,感興趣的可以了解一下2021-06-06MongoDB如何更新多級(jí)文檔的數(shù)據(jù)
MongoDB 這類文檔型數(shù)據(jù)庫(kù)與關(guān)系型數(shù)據(jù)庫(kù)最大的差別就是所有數(shù)據(jù)是按文檔存儲(chǔ)的,因此更新時(shí)會(huì)涉及深層數(shù)據(jù)更新,例如更如何新某個(gè)對(duì)象的下級(jí)對(duì)象屬性。本篇介紹如何更新多級(jí)文檔的數(shù)據(jù)。2021-06-06MongoDB性能篇之創(chuàng)建索引,組合索引,唯一索引,刪除索引和explain執(zhí)行計(jì)劃
這篇文章主要介紹了MongoDB性能篇之創(chuàng)建索引,組合索引,唯一索引,刪除索引和explain執(zhí)行計(jì)劃的相關(guān)資料,需要的朋友可以參考下2016-02-02window下mongodb在dos下服務(wù)器啟動(dòng)及連接
這篇文章主要介紹了window下mongodb在dos下服務(wù)器啟動(dòng)及連接的相關(guān)資料,需要的朋友可以參考下2017-06-06mongodb 數(shù)據(jù)生成Insert 語(yǔ)句的示例代碼
這篇文章主要介紹了mongodb 數(shù)據(jù)生成Insert 語(yǔ)句的示例代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03MongoDB整庫(kù)備份與還原以及單個(gè)collection備份、恢復(fù)方法
mongodb數(shù)據(jù)庫(kù)維護(hù)離不開必要的備份、恢復(fù)操作,而且一般不會(huì)出錯(cuò),所以我們?cè)谑褂玫臅r(shí)候大部分時(shí)候使用備份和恢復(fù)操作就可以了2013-08-08SpringBoot整合redis及mongodb的詳細(xì)過程
這篇文章主要介紹了SpringBoot整合redis及mongodb,本節(jié)我們來把關(guān)注點(diǎn)轉(zhuǎn)向NoSQL,文章結(jié)合示例代碼給大家講解的非常詳細(xì),需要的朋友可以參考下2022-10-10