国产免费观看青青草原网站_久久精品视频色悠悠_影音先锋激情5566_日本一區二區三區免費高清在線_麻豆精品一区综合av_丰满的大屁股一区二区_男女啪啪免费网站_草莓视频app在线观看下载_午夜寂寞少妇AA片_混乱的生物课月老师后续视频

 
您現(xiàn)在的位置:首頁 ? 知識庫 ? 軟件開發(fā) 軟件開發(fā)
淺談NoSql之MongoDB
發(fā)布日期:2018-04-11

定義


MongoDB是一個基于分布式文件存儲的數(shù)據(jù)庫。由C++語言編寫。旨在為WEB應用提供可擴展的高性能數(shù)據(jù)存儲解決方案。它介于關系數(shù)據(jù)庫和非關系數(shù)據(jù)庫之間的產(chǎn)品,是非關系數(shù)據(jù)庫當中功能最豐富,最像關系數(shù)據(jù)庫的。他支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類似json的bson格式,因此可以存儲比較復雜的數(shù)據(jù)類型。Mongo最大的特點是他支持的查詢語言非常強大,其語法有點類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實現(xiàn)類似關系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對數(shù)據(jù)建立索引。

特點

  • 高性能、易部署、易使用,存儲數(shù)據(jù)非常方便。

主要功能特性

  • 面向集合存儲,易存儲對象類型的數(shù)據(jù)。

  • 模式自由。

  • 支持動態(tài)查詢。

  • 支持完全索引,包含內(nèi)部對象。

  • 支持查詢。

  • 支持復制和故障恢復。

  • 使用高效的二進制數(shù)據(jù)存儲,包括大型對象(如視頻等)。

  • 自動處理碎片,以支持云計算層次的擴展性。

  • 支持RUBY,PYTHON,JAVA,C++,PHP,C#等多種語言。

  • 文件存儲格式為BSON(一種JSON的擴展)。

  • 可通過網(wǎng)絡訪問。

適用場景

  • 作為文檔型DB

    MongoDB是文檔型(Document store)的NoSQL數(shù)據(jù)庫,數(shù)據(jù)以文檔的形式在MongoDB中保存,文檔實際上就是一個個JSON字符串,使用JSON的好處是非常直觀,數(shù)據(jù)從MongoDB中讀取出來后,可無需轉(zhuǎn)換直接使用;通過一系列的Key-Value鍵值對來表示數(shù)據(jù),且Key-Value鍵值對支持豐富的數(shù)據(jù)結(jié)構(gòu),Value可以是普通的整型、字符串,可以是數(shù)組,也可以是嵌套的子文檔,使用嵌套的好處是在MongoDB中僅需一次簡單的查詢就能夠獲取到你所需的數(shù)據(jù)。舉電商領域為例,網(wǎng)易嚴選上賣的上衣和褲子兩種商品,除了有共同屬性,如產(chǎn)地、價格、材質(zhì)、顏色等外,還有各自有不同的屬性集,如上衣的獨有屬性是肩寬、胸圍、袖長等,褲子的獨有屬性是臀圍、腳口和褲長等。

  • 地理位置索引

    MongoDB還具有強大的索引能力,支持創(chuàng)建唯一索引、二級索引、TTL索引和地理位置索引。而地理位置索引是MongoDB早已被用戶所熟知的特性,其球面(Spherical)和平面(Flat)兩種模式,提供了豐富的地址位置的表示方式,如2d、2dsphere和GeoJSON等,對于移動App,如地圖軟件、打車軟件、外賣軟件,MongoDB強大的地理位置索引功能使其為最佳選擇;此外,對于物聯(lián)網(wǎng)、智慧都市等領域,也需要大量的地理位置相關操作,這些都是MongoDB的競技場。

  • 高可用和讀寫負載均衡解決方案

    MongoDB的復制集是數(shù)據(jù)庫領域領先的高可用和讀寫負載均衡解決方案,提供了數(shù)據(jù)自動(異步/同步)復制能力,一個新節(jié)點加入到復制集中會自動進行數(shù)據(jù)初始同步隨后使用oplog進行增量復制,無需人工干預;如果復制集的Primary節(jié)點發(fā)生宕機,MongoDB會自動進行主從切換,在復制集大多數(shù)節(jié)點在線的情況下,能夠基于Raft協(xié)議自動地快速選出新的Primary并恢復讀寫服務,無需人工干預;MongoDB運維人員所需做的僅僅是將宕機節(jié)點重新啟動,若宕機的是Primary,則重新啟動后,會自動進行數(shù)據(jù)回滾并最終成為復制集的Secondary節(jié)點,所以,相比目前的大多數(shù)關系型數(shù)據(jù)庫,MongoDB復制集實現(xiàn)了自動復制和故障切換,大大減低了運維復雜度,解放了DBA。如果你對數(shù)據(jù)的持久化和可用性有較高的要求,MongoDB復制集是上佳的選擇。

  • 大數(shù)據(jù)

    MongoDB是為大數(shù)據(jù)而生的,提供sharding機制用于實現(xiàn)業(yè)務的水平擴展。每個shard都保存業(yè)務的一部分數(shù)據(jù),shard可以配置為復制集,確保shard上數(shù)據(jù)的高可用性,shard內(nèi)部由一系列連續(xù)的chunk組成,chunk是某一片鍵區(qū)間內(nèi)的數(shù)據(jù)記錄集合;mongos用于業(yè)務請求的路由,將業(yè)務負載分攤到不同的shard上,此外mongos還會對shard上超過一定大小的chunk進行分裂(split);根據(jù)不同shard中數(shù)據(jù)量的大小,在shard將進行chunk遷移(migrate),應該說sharding提供了完善的業(yè)務數(shù)據(jù)和負載水平擴展的機制,對于物聯(lián)網(wǎng)、日志系統(tǒng)和監(jiān)控系統(tǒng)這類包含TB級海量數(shù)據(jù)的應用場景,使用MongoDB sharding是個不錯的選擇。

怎樣決定選擇使用MongoDB

  • 無需要跨文檔或跨表的事務及復雜的join查詢支持

  • 敏捷迭代的業(yè)務,需求變動頻繁,數(shù)據(jù)模型無法確定

  • 存儲的數(shù)據(jù)格式靈活,不固定,或?qū)儆诎虢Y(jié)構(gòu)化數(shù)據(jù)

  • 業(yè)務并發(fā)訪問量大,需數(shù)千的QPS

  • TB級以上的海量數(shù)據(jù)存儲,且數(shù)據(jù)量不斷增加

  • 要求存儲的數(shù)據(jù)持久化、不丟失

  • 需要99.999%的數(shù)據(jù)高可用性

  • 需要大量的地理位置查詢、文本查詢

NoSql與關系型DB的比較

  • 理解ACID與BASE的區(qū)別(ACID是關系型數(shù)據(jù)庫強一致性的四個要求,而BASE是NoSQL數(shù)據(jù)庫通常對可用性及一致性的弱要求原則。

  • 理解持久化與非持久化的區(qū)別。這么說是因為有的NoSQL系統(tǒng)是純內(nèi)存存儲的。

  • 你必須意識到傳統(tǒng)有關系型數(shù)據(jù)庫與NoSQL系統(tǒng)在數(shù)據(jù)結(jié)構(gòu)上的本質(zhì)區(qū)別。傳統(tǒng)關系型數(shù)據(jù)庫通常是基于行的表格型存儲,而NoSQL系統(tǒng)包括了列式存儲(Cassandra)、key/value存儲(Memcached)、文檔型存儲(CouchDB)以及圖結(jié)構(gòu)存儲(Neo4j)

  • 與傳統(tǒng)關系數(shù)據(jù)庫有統(tǒng)一的SQL語言操作接口不同,NoSQL系統(tǒng)通常有自己特有的API接口。

  • 在架構(gòu)上,你必須搞清楚,NoSQL系統(tǒng)是被設計用于成百上千臺機器的集群中的,而非共享型數(shù)據(jù)庫系統(tǒng)的架構(gòu)。

  • 在NoSQL系統(tǒng)中,可能你得習慣一下不知道你的數(shù)據(jù)具體存在何處的情況。

  • 在NoSQL系統(tǒng)中,你最好習慣它的弱一致性。”eventually consistent”(最終一致性)正是BASE原則中的重要一項。比如在Twitter,你在Followers列表中經(jīng)常會感受到數(shù)據(jù)的延遲。

  • 在NoSQL系統(tǒng)中,你要理解,很多時候數(shù)據(jù)并不總是可用的。

  • 你得理解,有的方案是擁有分區(qū)容忍性的,有的方案不一定有。

NoSql中的mongodb,redis,hbase對比

mongodb

定位是取代關系型數(shù)據(jù)庫,想當一個主流數(shù)據(jù)庫。因為他有非結(jié)構(gòu)化、方便擴充字段、寫性能優(yōu)于mysql。萬事萬物有利有弊,mongodb的內(nèi)存型緩存內(nèi)容,讓其速度飛快,帶來內(nèi)存率多,掉電數(shù)據(jù)問題等,加上自身代碼還有很多bug帶來不如老牌關系型數(shù)據(jù)庫穩(wěn)定,特別是在主從等分布式環(huán)境,其設計也帶來諸多問題。

redis

是一個小而美的數(shù)據(jù)庫,主要用在key-value 的內(nèi)存緩存,讀寫性能極佳,list,set,hash等幾種簡單結(jié)構(gòu)使得使用也很簡單。緩存與簡單是其定位,分布式redis架構(gòu)的出現(xiàn),讓redis更加廣泛的使用,穩(wěn)坐緩存第一把交椅。

hbase

定位非結(jié)構(gòu)化大數(shù)據(jù),可伸縮性好,并不是完全高可用,底層依靠hadoop提供的HDFS,當你發(fā)現(xiàn)128GB內(nèi)存雙路CPU25TB存儲只夠一星期的時候,估計就沒有選擇綜合癥了,HBase成了最佳選擇。

  • 1.公司登記注冊于2003年1月27日,清遠市桑達電子網(wǎng)絡媒體有限公司
    2.公司2006年起成為清遠市政府定點協(xié)議供貨商,電子采購供貨商
    3.公司2007年被清遠市相關政府部門評為安防行業(yè)狀元
    4.公司2007年起成為長城電腦清遠如意服務站(SP368)
    5.公司2007年承建清遠市橫河路口電子警察工程,開創(chuàng)清遠電子警察先河。
  • 6.公司2007年起成為IBM合作伙伴、公司2010年底成為金蝶軟件清遠金牌代理(伙伴編號:30030013)
    7.公司組團隊參加南方都市報組織的創(chuàng)富評選,獲廣東80強。公司申請多項軟件著作權(quán)、專利權(quán)
    8.2016年起公司成為粵東西北地區(qū)為數(shù)不多的雙軟企業(yè),確立“讓軟件驅(qū)動世界,讓智能改變生活!"企業(yè)理想
    9.2016-01-29更名為廣東互動電子網(wǎng)絡媒體有限公司
    10.2021-01-13更名為廣東互動電子有限公司
  • 投資合作咨詢熱線電話:0763-3391888 3323588
  • 做一個負責任的百年企業(yè)! 天行健,君子以自強不息;地勢坤,君子以厚德載物;
    為用戶創(chuàng)造價值! 讓軟件驅(qū)動世界; 讓智能改變生活; 超越顧客期望,幫助顧客成功;
    對客戶負責,對員工負責,對企業(yè)命運負責!幫助支持公司的客戶成功;幫助忠誠于公司的員工成功!
  • 聯(lián)系電話:0763-3391888 3323588 3318977
    服務熱線:18023314222 QQ:529623964
  • 工作QQ:2501204690 商務QQ: 602045550
    投資及業(yè)務投訴QQ: 529623964
    微信:小米哥 微信號:qysed3391888
    騰訊微博:桑達網(wǎng)絡-基石與起點
  • E-MAIL:222#QYSED.CN ok3391888#163.com (請用@替換#)
在線客服
  • 系統(tǒng)集成咨詢
    點擊這里給我發(fā)消息
  • 網(wǎng)站\微信\軟件咨詢
    點擊這里給我發(fā)消息
  • 售后服務
    點擊這里給我發(fā)消息
  • 投資合作
    點擊這里給我發(fā)消息