17742004931

mongodb的幾種快速優化方法,而且已經不難優化了!

mongodb的幾種快速優化方法,而且已經不難優化了!

發布時間:2020-03-23 11:15:00

互聯網的發展和電子商務平臺的興起催生了大數據時代。mongodb作為一種典型的大數據開發框架,已經成為無SQL數據庫的典型代表。那么,mongod...

如果您有類似需求請致電

17742004931 , 17742004931

互聯網的發展和電子商務平臺的興起催生了大數據時代。mongodb作為一種典型的大數據開發框架,已經成為無SQL數據庫的典型代表。

那么,mongodb數據庫在使用過程中有沒有性能問題?本文將向您介紹一些mongodb性能優化技術。

Mongodb是一個沒有體系結構的數據庫。這意味著默認情況下沒有預定義的模式。我們可以在新版本中添加預定義的架構,但這不是必需的。注意使用嵌入式文檔和數組的困難,因為在應用程序端/ETL過程中解析數據會變得非常復雜。此外,陣列會損害復制性能:陣列中的每一個更改都會復制所有陣列值!

在mmapv1中,選擇正確的字段名很重要,因為數據庫需要保存每個文檔的字段名。這與保存在關系數據庫中不同。讓我們想象一下,如果您有一百萬個文件,從一個名為lastmessage的字段的傳感器獲取數據要花費多少錢:大約28mb只是為了保存字段名!十個字段的集合將需要280MB(僅適用于空文檔)。

幾乎與此文檔大小相同的文檔是不可取的,因為數據庫需要大量頁面來處理單個文檔。這需要更多的CPU周期來完成任何事情。

工作臺有多大?通常,應用程序不會使用所有數據。有些數據經常更新,而另一些則不更新。

你的工作數據集適合ram嗎?當所有工作數據集都在RAM中時,就會出現低性能。就像頁面錯誤一樣,WOW的緩慢會影響性能,這取決于您使用的是什么。

讀?。ㄈ鐐浞?、ETL或主報告)可能會對性能產生重大影響,因為緩存中的頁面存在競爭。大型報表或聚合也是如此。將多個集合用于多個目的,將特定計算機用于特定目的,例如使用區域保存不再使用的文檔,將有助于實現簡單且預期的工作集。

Mongodb可以通過profile監控數據并進行優化。

80%的時候,你應該開始注意從集合中分離出來。如果您的數據增長特別快,很可能您還沒有分割磁盤,磁盤將滿,導致mongodb掛斷。如果有大量數據,請嘗試使用碎片而不是副本集。做好磁盤容量規劃。即使使用碎片,容量也會提前擴大。畢竟,塊遷移仍然非常緩慢。

可能你的數據集很大,但并不重要。重要的是你的熱數據集有多大,你經常訪問的數據有多大(包括經常訪問的數據和所有索引數據)。使用mongodb時,確保熱數據小于機器的內存大小,并且內存可以容納所有的熱數據。

Mongodb的數據文件是預先分配的。在復制中,master和replicasets的非仲裁節點將預先創建足夠的空文件來存儲操作日志。在某些文件系統上,這些文件分配操作可能非常慢,從而導致進程被阻塞。所以我們應該選擇那些空間分配快的文件系統。這里的結論是盡量不要使用ext3、ext4或XFS。

這里的選擇包括磁盤RAID的選擇和磁盤與SSD的比較。

聯系我們,談您的需求

立即咨詢
棋牌游戏最低提现10元