標籤:style os 使用 ar 檔案 資料 sp cti 代碼
本篇主要簡單介紹一下MongoDB資料庫。
一、簡介
mongoDB是一個開源的,基於分布式的,面向文檔儲存的非關係型資料庫。是非關係型資料庫當中功能最豐富、最像關聯式資料庫的。
mongoDB由C++編寫,其名字來源於"humongous"這個單詞,其宗旨在於處理大量資料。
mongoDB可以運行在Windows、unix、OSX、Solaris系統上,支援32位和64位應用,提供多種程式設計語言的驅動程式。
mongoDB支援的資料結構非常鬆散,是類似json的BSON格式,通過索引值對的形式儲存資料,可以儲存複雜的資料類型。
mongoDB支援的資料類型有:null、boolean、String、objectId、32位整數、64位整數、64位浮點數、日期、Regex、js代碼、位元據、數組、內嵌文檔、最大值、最小值、未定義類型。
其中,內嵌文檔我理解的並不是.doc.txt等檔案,這裡所指的文檔是mongoDB的一個儲存單元(相當於關係型資料當中的記錄),在mongoDB中的表現形式為{key1:value1,key2:value2},而內嵌文檔則是這樣的形式{key1:value1,key2:{key2.1:value2.1,key2.2:value2.2}}。
mongoDB最大的特點是他支援的查詢語言非常強大,其文法有點類似於物件導向的查詢語言,幾乎可以實作類別似關聯式資料庫單表查詢的絕大部分功能,而且還支援對資料建立索引。
二、mongoDB的特性:
1. 面向集合儲存。資料被分組到若干集合,每個集合可以包含無限個文檔,可以將集合想象成RDBMS的表,區別是集合不需要進行模式定義。
2. 模式自由。集合中沒有行和列的概念,每個文檔可以有不同的key,key的值不要求一致的資料類型。
3. 支援動態查詢。mongoDB支援豐富的查詢運算式,查詢指令使用json形式運算式。
4. 完整的索引支援。mongoDB的查詢最佳化工具會分析查詢運算式,並產生一個高效的查詢計劃。
5. 高效的資料存放區,支援位元據及大型物件(圖片、視頻等)。
6. 支援複製和故障恢複。
7. 自動分區以支援雲層級的伸縮性,支援水平的資料庫叢集,可動態添加額外的伺服器。
三、 mongoDB的適用情境:
1. 適合作為資訊基礎設施的持久化緩衝層
2. 適合即時的插入、更新與查詢,並具備應用程式即時資料儲存所需的複製及高度伸縮性
3. 適合文檔化格式的儲存及查詢
4. 適合由數十或數百台伺服器組成的資料庫
四、mongoDB不適用情境:
1. 要求高度事務性的系統。例如對於銀行或會計等需要大量原子性複雜事物的應用程式來說,還是需要關係型資料庫的。
2. 傳統的商業智慧應用
3. 複雜的表級聯查詢
MongoDB學習(一)簡介