標籤:成功 複製集 包括 伺服器 啟用 mapred 行記錄 簡介 nosql資料庫
1.mongodb是基於文檔的(BSON,類似json的索引值對來儲存),不是基於表格,易於水平擴充,將內部相關的資料放在一起能提高資料庫的操作效能。如果你想建立一個新的文件類型,不用事先告訴資料庫關於這些資料的結構,直接存到資料庫中即可。易儲存物件類型的資料。
2.與關聯式資料庫的重大區別:可擴充的表結構,也就是說collection(表)中document(一行記錄)所擁有的欄位是可以變化的。
3.支援的查詢語言非常強大,其文法有點類似物件導向的的查詢語言。mongodb沒有join語句。
傳統關聯式資料庫中join操作可能會產生笛卡爾積的虛擬表消耗較多系統資源,而mongodb的文檔對象集合是任意結構,我們可以設計交貨號的資料模型盡量避開這樣的需求。
4.支援雲端運算特點:
原生的可擴充架構,通過啟用分區和水平擴充,提供雲端儲存所需的技術;
它的自動管理“複本集”,以保持資料的可用性和完整性;
聚集操作尤其是mapreduce可以在分區叢集上進行操作,可為大資料分析做準備。
5.目前大多數nosql資料庫不支援事務。原因:
大多數NoSQL系統都要能夠跨多台不同的機器擴充,資料庫中的資料分布在不同的機器上。一個事務中的寫入操作可能會訪問多個分區(在多台機器上)的資料,這就是“分散式交易”。
在分散式交易中確保原子性需要參與事務的機器相互協作。每一台機器都必須確定,事務在其它機器上能夠成功提交。而且,需要有一個協議,確保事務寫入操作涉及的機器在寫入資料狀態穩定之前都不會出現故障。
這個協作過程不僅會消耗大量的資源,而且會增加資料庫請求延遲。更大的問題是,在協作過程完成之前,其它操作無法讀取該事務寫入的資料。並發事務延遲會導致其它與出現延遲交易在時間上存在重疊的事務延遲,最終導致系統“阻塞(cloggage)”。
分散式交易所需的分布式協作會嚴重影響資料庫系統的效能,包括事務輸送量和事務延遲。因此,大多數NoSQ系統都選擇了不支援事務
來自 <http://blog.csdn.net/kezhong_wxl/article/details/77000947>
複製集和分區是mongodb最具特色的功能:
①複製集實現了資料庫的備份、自動容錯移轉。
至少包括primary節點、secondary節點、arbiter節點(仲裁節點)三個節點,primary節點負責資料的讀寫,secondary節備份primary節點的資料。當primary節點故障時,arbiter會從secondary節點中選擇一個節點當primary節點。
②分區叢集,實現分布式儲存與高效的讀寫分離。
複製集中的每個成員是一個mongodb執行個體,但是分區上部署時,每一個片就是一個複製集。
一個分區不是就在一個機器上。部署的總體原則要去使每個片(複製集)中的primary節點,secondary節點和arbiter節點分開以及和設定管理員分開,當其中任意一個機器宕機的時候,叢集都能正常運行。
mongodb簡介和特性