MongoDB,為何能在NoSQL家族裡異軍突起?

一、mongo的由來
截取自英文俚語humongous,意為”巨大的”,表明mongodb在設計之初就是為大數據量處理而生。

二、mongodb是個啥
mongodb是個可擴展、高性能、開源、面向文檔(document-oriented)的數據庫,由c++實現。官網首頁最顯著的位置用了”agile”和”scalable”這兩個詞來形容它:
(1)agile:輕快的,敏捷的;
(2)scalable:可擴展;

三、mongodb的十大特點
(1)面向文檔的存儲:類JSON文檔作為存儲,不固定表模式(schema-free);
(2)全文索引支持(full index support);
(3)多副本與高可用性(replication & availability);
(4)自動分片(auto-sharding);
(5)快速原地更新(fast in-place updates):大部分更新操作無需申請新的空間;
(6)支持map/reduce,即使在map/reduce上,也有類似SQL的group by支持;

(7)支持範圍查詢(range queries),正則表達式查詢(regular expression),用戶自定義js函數查詢,內嵌字段查詢(nestad field);
(8)索引支持:支持單key索引,複合索引,唯一索引,內嵌字段索引;查詢執行時,mongodb的查詢優化器會嘗試多種查詢計劃,並挑選最優的計劃執行;
(9)集函數支持(aggregation function);
(10)主從、副本的支持:mongodb支持主從結構,主db能執行讀操作與寫操作,從db從主db拷貝數據,從db只能執行讀操作;

四、與MySQL的最大不同
MySQL是關係型的數據庫,而mongodb是schema-free的,它更像一個鍵值存儲系統(kv),但與kv不同的是,它又能像MySQL的模式一樣,能修改文檔內的數據,並對內部數據進行索引。
mongodb文檔以BSON格式存儲,即Binary JSON,BSON是一種二進制交換格式,類似Google Protocol Buffer。

所以,一般把MongoDB歸為NoSQL陣營,這是它與MySQL的最大不同。

當然,1分鐘只能瞭解個大概,如果想要深入的GET新技能,在這裡給大家推薦一份MongoDB的權威指南!從基礎入門到項目實操,一步一步帶你走進MongoDB的世界!

這是一門從原理,到精髓,到應用,到架構的“實踐類”課程,不信可以看看目錄

MongoDB,為何能在NoSQL家族裡異軍突起?

美國市場研究公司 Forrester 在 2019 的 NoSQL 報告中指出,「全世界,有半數的數據和分析技術決策者都已經或正在建構 NoSQL 平臺」,而MongoDB作為NoSQL的領導者,儼然成為IT 人員必不可少的技能之一。

由於文案內容過長書籍內部部分截圖出來,想學習MongoDB的朋友可以私信我關鍵字【資料】即可免費獲取這份實戰寶典!


分享到:


相關文章: