mongodb的特點有:1、面向文檔,使用二進制格式存儲,可以保存任何類型的數(shù)據(jù)對象;2、mongodb性能高,緩存速度快;3、mongodb中的分片實現(xiàn)了高可用;4、易擴展,能夠根據(jù)實際情況對數(shù)據(jù)庫進行擴展;5、mongodb能夠支持的查詢語言非常豐富。
具體內(nèi)容如下:
MongoDB是一個基于分布式文件存儲的數(shù)據(jù)庫。由C++語言編寫。旨在為WEB應用提供可擴展的高性能數(shù)據(jù)存儲解決方案。
特點
面向文檔
MongoDB使用BSON作為數(shù)據(jù)存儲和傳輸?shù)母袷?。BSON是一種類似JSON的二進制序列化文檔,支持嵌套對象和數(shù)組,使用高效的二進制數(shù)據(jù)存儲,包括大型對象(如視頻)。使用二進制格式存儲,可以保存任何類型的數(shù)據(jù)對象。
高性能
數(shù)據(jù)快,Nytro MegaRAID技術中的閃存高速緩存算法,能夠快速識別數(shù)據(jù)庫內(nèi)大數(shù)據(jù)集中的熱數(shù)據(jù),提供一致的性能改進 . 經(jīng)常使用的數(shù)據(jù)存在內(nèi)存,訪問次數(shù)少的數(shù)據(jù)存在硬盤
在指定屬性、內(nèi)部對象上創(chuàng)建索引以提高查詢的速度
高可用
副本集,分片的設計實現(xiàn)高可用,從而減少停工時間,而保持其服務的高度可用性 .
支持復制和數(shù)據(jù)恢復。MongoDB 支持主從復制機制,可以實現(xiàn)數(shù)據(jù)備份、故障恢復、讀擴展等功能。而基于副本集的復制機制提供了自動故障恢復的功能,確保了集群數(shù)據(jù)不會丟失
使用Sharding功能將數(shù)據(jù)水平分割到各個節(jié)點上,達到負載均衡的目的.
自動處理分片,以支持云計算層次的擴展。MongoDB 支持集群自動切分數(shù)據(jù),對數(shù)據(jù)進行分片可以使集群存儲更 多的數(shù)據(jù),實現(xiàn)更大的負載,也能保證存儲的負載均衡。
易擴展
數(shù)據(jù)量從小到大,需要擴展,根據(jù)實際情況,我們要對數(shù)據(jù)庫進行擴展,有如下兩種思路:
縱向: 縱向擴展就是使用計算能力更強的機器。提升計算機的配置,但是配置高價格也隨之上升,當上升到一定的程度就無法提升了。(物理極限)
橫向: 橫向擴展就是通過分區(qū)將數(shù)據(jù)分散到更多機器上,這就是所謂的mongodb分布式。 增加存儲空間或提高性能,搭建mongodb集群即可,但是集群就存在一個管理問題。
豐富的查詢語言
Mongo最大的特點是它支持的查詢語言非常強大,其語法有點類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實現(xiàn)類似關系數(shù)據(jù)庫單表查詢的絕大部分功
提供強大的聚合工具,如count、group 等,支持使用MapReduce 完成復雜的聚合任務。
應用場景
網(wǎng)站數(shù)據(jù):Mongo 非常適合實時的插入,更新與查詢,并具備網(wǎng)站實時數(shù)據(jù)存儲所需的復制及高度伸縮性。
緩存:由于性能很高,Mongo 也適合作為信息基礎設施的緩存層。在系統(tǒng)重啟之后,由Mongo 搭建的持久化緩存層可以避免下層的數(shù)據(jù)源過載。
大尺寸、低價值的數(shù)據(jù):使用傳統(tǒng)的關系型數(shù)據(jù)庫存儲一些數(shù)據(jù)時可能會比較昂貴,在此之前,很多時候程序員往往會選擇傳統(tǒng)的文件進行存儲。
高伸縮性的場景:Mongo 非常適合由數(shù)十或數(shù)百臺服務器組成的數(shù)據(jù)庫 .
短板
MongoDB不支持事務 高度事務性的系統(tǒng):例如,銀行或會計系統(tǒng)。傳統(tǒng)的關系型數(shù)據(jù)庫目前還是更適用于需要大量原子性復雜事務的應用程序。
占用空間過大,維護工具不夠成熟,(3.0版本后支持壓縮