mongodb系列01--基礎篇

今年入職花旗,剛進來leader 就交待我去研究mongodb,搭建mongodb分佈式集羣,以前沒有接觸過這一塊硬着頭皮開始學習mongodb。 到如今已通過去4個月了,今天把學習mongodb的過程當中的一些知識和體會寫下來供大叫參考,固然主要可能仍是我本身看。
    關於mongodb集羣環境的搭建你們能夠看個人另外一篇博客,我給出了mongodb測試環境集羣的詳細地搭建過程,固然也給出了高可用分佈式生產環境集羣的架構策略。

1

由於入職一個月以後新人須要開一個技術演說的session,個人選題就是mognodb的研究,這裏我會配合個人PPT進行講解,這個過程會涉及不少基礎的計算機知識,相信你們看了應該是大有幫助html

我有幾張阿里雲幸運券分享給你,用券購買或者升級阿里雲相應產品會有特惠驚喜哦!把想要買的產品的幸運券都領走吧!快下手,立刻就要搶光了。
2sql

MongoDB[1]  是一個基於分佈式文件存儲的數據庫。由C++語言編寫。旨在爲WEB應用提供可擴展的高性能數據存儲解決方案。MongoDB 將數據存儲爲一個文檔,數據結構由鍵值(key=>value)對組成。相似於json的bson組成---二進制形式的json,MongoDB 文檔相似於 JSON 對象 。所以能夠存儲比較複雜的數據類型。字段值能夠包含其餘文檔,數組及文檔數組。

3

在mongodb中基本的概念是文檔、集合、數據庫,下面咱們挨個介紹
時間換空間
咱們能夠對比sql和mongodb來了解一下,在關係型數據庫中數據庫下的基本單位是table,而在mongodb中是用collection,一行數據對應的是mongodb中的一個文檔,這就是爲何咱們稱mongodb爲面向文檔的數據庫,咱們注意到mongodb中不存在錶鏈接的狀況,關係型數據庫的典型特徵是表之間存在關聯關係,mongodb不存在這種錶鏈接語句,那麼文檔之間的一對一地以對多,多對多的狀況mongodb能夠經過在字段中嵌套一個或多個文檔來實現這種關係,我認爲這是一種以空間換時間的作法,好比有兩張表用戶表和商品表,一個用戶對應多個商品,假設想要查詢一個用戶下的全部商品信息,在關係型數據庫的查詢中須要鏈表查詢join,咱們知道join必然會帶來不少磁盤隨機度的操做,隨機讀沒法像順序讀那樣的局部性好,緩存效果很差,反觀Mongodb這種Nosql系統中,能夠將一個用戶的對應的全部商品信息嵌套存入該用戶對應的文檔的字段裏面去,也就是說這些信息都存在一個文檔中,局部性很好,這樣的雖然磁盤冗餘了大量的數據,但卻大大加快了查詢的速度,從當前計算機的發展來看,空間換時間是很正常的,而計算機最關鍵的技術高速緩存cache技術就是用空間換時間的典範。mongodb

相關文章
相關標籤/搜索