MongoDB手動預分片(九)

2021-08-19 19:16:40 字數 845 閱讀 3212

一、書接上文

在上篇文章總介紹了搭建mongodb分片,但是由於chunk是在主分片上先存資料,然後將主分片上的chunk數量和其他分片上chunk數量的多少作比較,如果主分片上的chunk數量大於其他分片上的chunk數量,則將主分片上的chunk向其他分片移動。這樣就會造成不同分片伺服器之間的io繁忙。在本篇中採用手動分片來解決這個問題。

二、說動手就動手

1、分片前先申明分片的資料庫和**。例如:對shop資料庫的user表進行分片,分片依據user_id欄位拆分。

sh.shardcollection('shop.user',)
2、手動分片①、分片語法:sh.splitat(資料庫.**,)

for(var i=1;i<=10;i++))}
預先在shop資料庫的user表上根據user_id欄位數量分割,每隔1k條資料分乙個chunk一共分10次,這樣的界限切好chunk(雖然chunk是空的), 這些chunk將會均勻移動到各片上.

②、檢視手動分片後chunk分配的狀態。執行:sh.status()

③、插入資料,觀察每個分片上儲存的資料

for(var i=1;i<=50000;i++))}
分別在每個幾點的分片伺服器上登入檢視資料量,發現已經按照預先定義好的規則進行存放資料。

27017節點分片的資料

27018節點分片上的資料

搭建mongodb分片

這是一種將海量的資料水平擴充套件的資料庫集群系統,資料分表儲存在sharding的各個節點上,使用者通過簡單的配置就可以很方便地構建乙個分布式mongodb集群。mongodb 的資料分塊稱為 chunk。每個 chunk 都是 collection中一段連續的資料記錄,通常最大尺寸是 200mb,...

MongoDB分片技術

在mongodb裡面存在另一種集群,就是分片技術,跟sql server的表分割槽類似,我們知道當資料量達到t級別的時候,我們的磁碟,記憶體 就吃不消了,針對這樣的場景我們該如何應對。一 分片 mongodb採用將集合進行拆分,然後將拆分的資料均攤到幾個片上的一種解決方案。下面我對這張 釋一下 人臉...

mongodb分片技術

在mongodb裡面存在另一種集群,就是分片技術,跟sql server的表分割槽類似,我們知道當資料量達到t級別的時候,我們的磁碟,記憶體 就吃不消了,針對這樣的場景我們該如何應對。一 分片 mongodb採用將集合進行拆分,然後將拆分的資料均攤到幾個片上的一種解決方案。下面我對這張 釋一下 人臉...