一、簡介
mongodb是乙個開源的,基於分布式的,面向文件儲存的非關係型資料庫。是非關係型資料庫當中功能最豐富、最像關聯式資料庫的。
mongodb由c++編寫,其名字**於"humongous"這個單詞,其宗旨在於處理大量資料。
mongodb可以執行在windows、unix、osx、solaris系統上,支援32位和64位應用,提供多種程式語言的驅動程式。
mongodb支援的資料結構非常鬆散,是類似json的bson格式,通過鍵值對的形式儲存資料,可以儲存複雜的資料型別。
mongodb支援的資料型別有:null、boolean、string、objectid、32位整數、64位整數、64位浮點數、日期、正規表示式、js**、二進位制資料、陣列、內嵌文件、最大值、最小值、未定義型別。
其中,內嵌文件我理解的並不是.doc.txt等檔案,這裡所指的文件是mongodb的乙個儲存單元(相當於關係型資料當中的記錄),在mongodb中的表現形式為,而內嵌文件則是這樣的形式}。
mongodb最大的特點是他支援的查詢語言非常強大,其語法有點類似於物件導向的查詢語言,幾乎可以實現類似關聯式資料庫單錶查詢的絕大部分功能,而且還支援對資料建立索引。
二、mongodb的特性:
1. 面向集合儲存。資料被分組到若干集合,每個集合可以包含無限個文件,可以將集合想象成rdbms的表,區別是集合不需要進行模式定義。
2. 模式自由。集合中沒有行和列的概念,每個文件可以有不同的key,key的值不要求一致的資料型別。
3. 支援動態查詢。mongodb支援豐富的查詢表示式,查詢指令使用json形式表示式。
4. 完整的索引支援。mongodb的查詢優化器會分析查詢表示式,並生成乙個高效的查詢計畫。
6. 支援複製和故障恢復。
7. 自動分片以支援雲級別的伸縮性,支援水平的資料庫集群,可動態新增額外的伺服器。
三、 mongodb的適用場景:
1. 適合作為資訊基礎設施的持久化快取層
2. 適合實時的插入、更新與查詢,並具備應用程式實時資料儲存所需的複製及高度伸縮性
3. 適合文件化格式的儲存及查詢
4. 適合由數十或數百台伺服器組成的資料庫
四、mongodb不適用場景:
1. 要求高度事務性的系統。例如對於銀行或會計等需要大量原子性複雜事物的應用程式來說,還是需要關係型資料庫的。
2. 傳統的商業智慧型應用
3. 複雜的表級聯查詢
教程:
文件:
分布式系統簡介
對通用的功能和元件抽取出來,就是中介軟體。中介軟體和支撐系統是分布式系統的基礎設施。訊息中介軟體兩大功能 訂閱和發布,訊息佇列。資料庫中介軟體 分庫,分表 持久化儲存 在持久化儲存前面增加一層快取,快取的價值在於對磁碟的機械操作將它轉換為對記憶體的操作,這樣的話效能能夠提公升數倍 搜尋引擎 垂直化的...
分布式事務簡介
xa協議 資源管理器 db 與事務管理器的介面標準,在xa協議下,提交乙個事務需要兩個階段 階段一 預備提交 階段二 提交 每次提交之前先執行try介面測試資料庫是否是通的,資料庫都是通的之後再去進行提交操作 需要在業務層實現try confirm介面 在乙個事務正在進行的同時,發出訊息給其他的業務...
Hadoop分布式框架簡介
原文 分布式系統基本原理 分布式系統被設計成可以儲存和管理大資料量的資訊的系統,並為這些資料提供對外的訪問功能 通過網路 現在已經有許多的分布式系統用各種不同的方法解決了這個問題。nfs,the network file system,是目前最普遍的分布式系統。它也是還在使用的最老的分布式系統之一。...