8天學通MongoDB——第六天 分區技術

來源:互聯網
上載者:User

     在mongodb裡面存在另一種叢集,就是分區技術,跟sql server的表分區類似,我們知道當資料量達到T層級的時候,我們的磁碟,記憶體

就吃不消了,針對這樣的情境我們該如何應對。

 

一:分區

     mongodb採用將集合進行拆分,然後將拆分的資料均攤到幾個片上的一種解決方案。

 

下面我對這張圖解釋一下:

     人臉:       代表用戶端,用戶端肯定說,你資料庫分區不分區跟我沒關係,我叫你幹啥就幹啥,沒什麼好商量的。

     mongos: 首先我們要瞭解”片鍵“的概念,也就是說拆分集合的依據是什嗎?按照什麼索引值進行拆分集合....

                     好了,mongos就是一個路由伺服器,它會根據管理員設定的“片鍵”將資料分攤到自己管理的mongod叢集,資料

                    和片的對應關係以及相應的配置資訊儲存在"config伺服器"上。

    mongod:   一個普通的資料庫執行個體,如果不分區的話,我們會直接連上mongod。

 

二: 實戰

    首先我們準備4個mongodb程式,我這裡是均攤在C,D,E,F盤上,當然你也可以做多個檔案夾的形式。

1:開啟config伺服器

      先前也說了,mongos要把mongod之間的配置放到config伺服器裡面,理所當然首先開啟它,我這裡就建立2222連接埠。

 

2: 開啟mongos伺服器

    這裡要注意的是我們開啟的是mongos,不是mongod,同時指定下config伺服器,這裡我就開啟D盤上的mongodb,連接埠3333。

 

3:啟動mongod伺服器

     對分區來說,也就是要添加片了,這裡開啟E,F盤的mongodb,連接埠為:4444,5555。

 

4: 服務配置

    哈哈,是不是很興奮,還差最後一點配置我們就可以大功告成。

 <1> 先前圖中也可以看到,我們client直接跟mongos打交道,也就說明我們要串連mongos伺服器,然後將4444,5555的mongod

         交給mongos,添加分區也就是addshard()。

這裡要注意的是,在addshard中,我們也可以添加複本集,這樣能達到更高的穩定性。

 

<2>片已經叢集了,但是mongos不知道該如何切分資料,也就是我們先前所說的片鍵,在mongodb中設定片鍵要做兩步

        ①:開啟資料庫分區功能,命令很簡單 enablesharding(),這裡我就開啟test資料庫。

        ②:指定集合中分區的片鍵,這裡我就指定為person.name欄位。

 

5: 查看效果

好了,至此我們的分區操作全部結束,接下來我們通過mongos向mongodb插入10w記錄,然後通過printShardingStatus命令

查看mongodb的資料分區情況。

 這裡主要看三點資訊:

  ① shards:     我們清楚的看到已經別分為兩個片了,shard0000和shard0001。

  ② databases:  這裡有個partitioned欄位表示是否分區,這裡清楚的看到test已經分區。

  ③ chunks:     這個很有意思,我們發現集合被砍成四段:

                           無窮小 —— jack0,jack0 ——jack234813,jack234813——jack9999,jack9999——無窮大。

                           分區情況為:3:1,從後面的 on shardXXXX也能看得出。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.