說到選型,肯定避免不了幾個問題,優缺點,適用場合,上手容易度,技術的成熟度,社群的活躍度等。下面就這幾個問題簡單說說。
1、優缺點:
mongodb作為乙個很熱門的nosql資料庫有著比較多的優點,大概歸納為以下五點。
(1)、無模式
mongodb是乙個文件型儲存的資料庫,每一行資料都是乙個文件,每乙個文件中的字段可以不一致,個數也可以不相同,而且是乙個以bson方式儲存的文件。bson: short for binary json
(2)、高效能
mongodb的高效能是怎麼實現的呢?
這個主要依靠2點來解決(當然還有很多其它的)。第一點是mongodb的儲存空間是預先分配的。以64位機器為例,首先分配64m,以0填充,然後每次檔案空間大小翻倍,直到2g,然後每次分配2g。預先分配的好處是不需要每次儲存的時候都分配空間,加快了儲存的效率。第二點是mongodb的記憶體對映機制。mongodb首先將資料寫到記憶體,然後非同步寫道硬碟上(如果是非安全模式的話)。mongodb是不管理記憶體的,它將這份工作交給了作業系統。
(3)、易擴充套件
mongodb集群是很容易擴充套件的(新增刪除節點簡單),而且可以支援資料的分片。(後面的章節會詳細的介紹怎麼分片以及怎麼擴充套件)
(4)、易管理
mongodb的管理幾乎都是自動的。自動故障轉移:當乙個分片中的primary機器down後,其它機器會自動選舉,選出一台機器當primary。自動負載均衡:當兩個分片的資料相差很大時,集群會自動將一部分資料轉移到資料少的分片上。
(5)、多功能
mongodb的功能很多,例如:索引,聚合,分布式的檔案儲存,js儲存過程,gridfs檔案儲存,定容集合等。
優點說到這,mongodb同樣也有著它的限制或缺點,主要是下面兩點。
(1)、mongodb占用儲存空間大。
這主要是由三個因素決定的。第一,mongodb的空間預分配方式,這樣會讓mongodb最多浪費不超過2g+2g檔案大小的空間。第二,mongodb的欄位名占用,即使是相同的字段,mongodb也會在每乙個文件中都儲存,這裡會浪費極大的空間。第三,mongodb刪除資料並不會釋放空間,而只是將空間記錄為刪除狀態以便重用。
(2)、mongodb沒有事務模式,所以事務要求嚴格的系統慎用。
mongodb的優缺點都大概了解了,那麼來說說mongodb的適用場景。
2、適用場合
根據前面說的優點,可以發現mongodb的一些適用場景,以下僅舉例。
(1)、儲存大尺寸,低價值資料
(2)、高伸縮性場景,mongodb的集群新增刪除結點簡單
(3)、**或論壇資料,實時性的插入更新查詢
3、上手容易度
mongodb有著單機,主備,集群三種工作方式。這三種模式的配置都可以在網上簡單的找到。
4、技術的成熟度
mongodb是2023年2月由10gen推出的,到現在為止已經發布了幾十個版本。同樣也有著很多著名的公司包括sourceforge,ebay等在使用,詳情請看
5、社群的活躍度
10gen,mongodb官方網,nosqlfun上面有很多很好的文章,也可以向上面的大牛請教自己的問題。
mongodb的facebook區有很多人討論,在iteye上也有很多的帖子。mongodb的google group裡的成員回答問題非常熱情。還有很多類似的論壇部落格之類的。
mongodb系列之 解讀journal
mongodb的journal,簡單來說就是用於資料故障恢復和持久化資料的,它以日誌方式來記錄。從1.8版本開始有此功能,2.0開始預設開啟此功能,但32位的系統是預設關閉的。journal除了故障恢復的作用之外,還可以提高寫入的效能,批量提交 batch commit journal一般預設100...
Mongodb系列 初識Mongodb
一 背景 月初進行了期末考試非常榮幸可以參加到了考試系統維護中 詳情請閱讀 那些年我們一起參加的活動 15年上半年考試系統維護總結 主要負責server維護,在維護期間對mongodb相逢。mongodb什麼東東?假設有點暈的童鞋請猛戳me科普一下哈。正是因為這些優勢使得考試系統選擇用它來存放英語聽...
器件選型電源篇 LDO器件選型
ldo即low dropout regulator,是一種低壓差線性穩壓器。這是相對於傳統的線性穩壓器來說的。傳統的線性穩壓器,如78xx系列的晶元都要求輸入電壓要比輸出電壓至少高出2v 3v,否則就不能正常工作。但是在一些情況下,這樣的條件顯然是太苛刻了,如5v轉3.3v,輸入與輸出之間的壓差只有...