前端技术分享:什么是MongoDB数据库?
什么是MongoDB數(shù)據(jù)庫?MongoDB是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫。由C++語言編寫。旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案。MongoDB是一個(gè)介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的。它支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類似json的bson格式,因此可以存儲(chǔ)比較復(fù)雜的數(shù)據(jù)類型。
Mongo最大的特點(diǎn)是它支持的查詢語言非常強(qiáng)大,其語法有點(diǎn)類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實(shí)現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對(duì)數(shù)據(jù)建立索引。MongoDB 的原名一開始來自于 英文單詞"Humongous", 中文含義是指"龐大",即創(chuàng)建者的意圖是用它可以處理大規(guī)模的數(shù)據(jù)。
很多程序員更喜歡稱呼它為 “芒果"數(shù)據(jù)庫,除了譯音更加相近之外,原因還來自于使用 MongoDB 的感覺:使用MongDB最大的感受是一個(gè)字"爽”!使用這個(gè)文檔數(shù)據(jù)庫的特點(diǎn)是幾乎不受什么限制,一方面Json文檔式的結(jié)構(gòu)更容易理解,而無Schema約束也讓DDL管理更加簡(jiǎn)單,一切都可以很快速的進(jìn)行。
MongoDB適用網(wǎng)站數(shù)據(jù):Mongo 非常適合實(shí)時(shí)的插入,更新與查詢,并具備網(wǎng)站實(shí)時(shí)數(shù)據(jù)存儲(chǔ)所需的復(fù)制及高度伸縮性。緩存:由于性能很高,Mongo 也適合作為信息基礎(chǔ)設(shè)施的緩存層。在系統(tǒng)重啟之后,由Mongo 搭建的持久化緩存層可以避免下層的數(shù)據(jù)源過載。大尺寸、低價(jià)值的數(shù)據(jù):使用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫存儲(chǔ)一些數(shù)據(jù)時(shí)可能會(huì)比較昂貴,在此之前,很多時(shí)候程序員往往會(huì)選擇傳統(tǒng)的文件進(jìn)行存儲(chǔ)。高伸縮性的場(chǎng)景:Mongo 非常適合由數(shù)十或數(shù)百臺(tái)服務(wù)器組成的數(shù)據(jù)庫,Mongo 的路線圖中已經(jīng)包含對(duì)MapReduce 引擎的內(nèi)置支持。用于對(duì)象及JSON 數(shù)據(jù)的存儲(chǔ):Mongo 的BSON 數(shù)據(jù)格式非常適合文檔化格式的存儲(chǔ)及查詢。
也許有人會(huì)有這樣的問題:MySQL、MongoDB、Redis、Hbase等這些數(shù)據(jù)庫哪個(gè)更好?其實(shí)這是一個(gè)偽命題,脫離了具體的業(yè)務(wù)場(chǎng)景來討論好壞是紙上談兵,沒有最好的,只有最合適的,誰也無法保證完全取代誰,上面的每種數(shù)據(jù)庫都在變得更好,都在不停地完善自身。比如MySQL在不斷提升其JSON和地理位置處理能力、組復(fù)制(group replication)已在開發(fā)等;而MongoDB在增強(qiáng)join類型支持,提供更為復(fù)雜的多集合查詢能力,計(jì)劃支持事務(wù)等。
總結(jié)來說就是:作為一個(gè)程序員,很有必要學(xué)習(xí)MongoDB數(shù)據(jù)庫!
本文來自千鋒教育,轉(zhuǎn)載請(qǐng)注明出處。
總結(jié)
以上是生活随笔為你收集整理的前端技术分享:什么是MongoDB数据库?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java程序员面试时应注意的三个经典问题
- 下一篇: web前端技巧-ES6新特性与重点知识汇