mongodb的存儲結構
① mongodb是非結構化資料庫嗎
Mongodb用於存儲非結構化數據,尤其擅長存儲json格式的數據。存儲的量大概在10億級別,再往上性能就下降了,除非另外分庫。
Hbase是架構在hdfs上的列式存儲,擅長rowkey的快速查詢,但模糊匹配查詢(其實是前模糊或全模糊)不擅長,但存儲的量可以達到百億甚至以上,比mongodb的存儲量大多了。
② mongodb是什麼類型的資料庫
MongoDB是一個基於分布式文件存儲的資料庫。由C++語言編寫。旨在為WEB應用提供可擴展的高性能數據存儲解決方案。MongoDB
是一個介於關系資料庫和非關系資料庫之間的產品,是非關系資料庫當中功能最豐富,最像關系資料庫的。他支持的數據結構非常鬆散,是類似json的bson格式,因此可以存儲比較復雜的數據類型。Mongo最大的特點是他支持的查詢語言非常強大,其語法有點類似於面向對象的查詢語言,幾乎可以實現類似關系資料庫單表查詢的絕大部分功能,而且還支持對數據建立索引。
③ mongodb用什麼格式存儲數據
MongoDB[2] 是一個介於關系資料庫和非關系資料庫之間的產品,是非關系資料庫當中功能最豐富,最像關系資料庫的。他支持的數據結構非常鬆散,是類似json的bson格式,因此可以存儲比較復雜的數據類型
④ mongodb 存儲是json嗎
MongoDB存儲數據類型為BSON(Binary JSON).
MongoDB 是一個基於分布式文件存儲的資料庫。它將數據存儲為一個文檔,數據結構由鍵值(key=>value)對組成。MongoDB 文檔類似於 JSON 對象。欄位值可以包含其他文檔,數組及文檔數組。
數據格式示例:
什麼是BSON?
BSON是一種類json的一種二進制形式的存儲格式,簡稱Binary JSON,它和JSON一樣,支持內嵌的文檔對象和數組對象,但是BSON有JSON沒有的一些數據類型,如Date和BinData類型。
mongoDB對JSON串做了一些增加,使其可以支持更多的數據類型,並且將其作為存儲結構。
BSON可以做為網路數據交換的一種存儲形式,是一種schema-less的存儲形式,它的優點是輕量性、高靈活性、可遍歷性、高效性,但它的缺點是空間利用率不是很理想。
參考來源:
http://blog.csdn.net/leshami/article/details/52668870
https://www.mongodb.com/json-and-bson
⑤ mongodb的基本概念
(1)文檔
文檔是 MongoDB 中數據的基本單位,類似於關系資料庫中的行(但是比行復雜)。多個鍵及其關聯的值有序地放在一起就構成了文檔。不同的編程語言對文檔的表示方法不同,在JavaScript 中文檔表示為:
{「greeting」:「hello,world」}
這個文檔只有一個鍵「greeting」,對應的值為「hello,world」。多數情況下,文檔比這個更復雜,它包含多個鍵/值對。例如:
{「greeting」:「hello,world」,「foo」: 3}
文檔中的鍵/值對是有序的,下面的文檔與上面的文檔是完全不同的兩個文檔。
{「foo」: 3 ,「greeting」:「hello,world」}
文檔中的值不僅可以是雙引號中的字元串,也可以是其他的數據類型,例如,整型、布爾型等,也可以是另外一個文檔,即文檔可以嵌套。文檔中的鍵類型只能是字元串。
(2)集合
集合就是一組文檔,類似於關系資料庫中的表。集合是無模式的,集合中的文檔可以是各式各樣的。例如,{「hello,word」:「Mike」}和{「foo」: 3},它們的鍵不同,值的類型也不同,但是它們可以存放在同一個集合中,也就是不同模式的文檔都可以放在同一個集合中。既然集合中可以存放任何類型的文檔,那麼為什麼還需要使用多個集合?這是因為所有文檔都放在同一個集合中,無論對於開發者還是管理員,都很難對集合進行管理,而且這種情形下,對集合的查詢等操作效率都不高。所以在實際使用中,往往將文檔分類存放在不同的集合中,例如,對於網站的日誌記錄,可以根據日誌的級別進行存儲,Info級別日誌存放在Info 集合中,Debug 級別日誌存放在Debug 集合中,這樣既方便了管理,也提供了查詢性能。但是需要注意的是,這種對文檔進行劃分來分別存儲並不是MongoDB 的強制要求,用戶可以靈活選擇。
可以使用「.」按照命名空間將集合劃分為子集合。例如,對於一個博客系統,可能包括blog.user 和blog.article 兩個子集合,這樣劃分只是讓組織結構更好一些,blog 集合和blog.user、blog.article 沒有任何關系。雖然子集合沒有任何特殊的地方,但是使用子集合組織數據結構清晰,這也是MongoDB 推薦的方法。
(3)資料庫
MongoDB 中多個文檔組成集合,多個集合組成資料庫。一個MongoDB 實例可以承載多個資料庫。它們之間可以看作相互獨立,每個資料庫都有獨立的許可權控制。在磁碟上,不同的資料庫存放在不同的文件中。MongoDB 中存在以下系統資料庫。
● Admin 資料庫:一個許可權資料庫,如果創建用戶的時候將該用戶添加到admin 資料庫中,那麼該用戶就自動繼承了所有資料庫的許可權。
● Local 資料庫:這個資料庫永遠不會被負責,可以用來存儲本地單台伺服器的任意集合。
● Config 資料庫:當MongoDB 使用分片模式時,config 資料庫在內部使用,用於保存分片的信息。
⑥ 【Python基礎】mongodb存儲文件的優缺點
MongoDB是一個開源的、基於分布式的、面向文檔存儲的非關系型資料庫。是非關系型資料庫當中功能最豐富、最像關系資料庫的。MongoDB高性能、易部署、易使用,存儲數據非常方便。
MongoDB優點:
1、高性能:弱一致性,訪問速度較快
2、文檔結構的存儲方式,能夠更便捷的獲取數、存儲數據方便,高效存儲二進制大對象
3、支持復制集、主備、互為主備、自動分片等特性
4、全索引支持,查詢語言功能非常強大
MongoDB缺點:
1、不支持事務,實際開發時得搞清楚哪些功能需要使用資料庫提供的事務支持
2、MongoDB佔用空間大(需要強大硬碟支持)
3、相對於Mysql那樣成熟的維護工具,MongoDB維護工具不夠完善、成熟
⑦ 比較mongodb和mysql在存儲結構化數據時的異同
1. MongoDB比MySQL快在它有Memory-Mapping以及它不用處理事物
2. MySQL適用於傳統的對關聯要求高的方面,MongoDB更多用於Logging、SNS等以K-V居多的需求,但是兩種資料庫其實都能勝任大多數需求。
對MongoDB來說,關聯一般是做成內聯的,最大程度發揮其優勢。而如果內聯起來比較糾結或者冗餘太多處理麻煩的時候當然用SQL更恰當了
3. 新項目可以考慮用MongoDB 如果經驗不足而時間緊迫則可以繼續用MySQL
4. 總之適當的任務用適當的工具
5. MongoDB有比較好的擴展能力,可以很容易做成分布式架構
6. 對MongoDB來說,內存越多越好
⑧ mongodb是關系型資料庫嗎
不是。MongoDB是一個介於關系資料庫和非關系資料庫之間的產品,是非關系資料庫當中功能最豐富,最像關系資料庫的。它支持的數據結構非常鬆散,是類似json的bson格式,因此可以存儲比較復雜的數據類型。Mongo最大的特點是它支持的查詢語言非常強大,其語法有點類似於面向對象的查詢語言,幾乎可以實現類似關系資料庫單表查詢的絕大部分功能,而且還支持對數據建立索引。