mongodb系列01--基础篇
2019獨角獸企業重金招聘Python工程師標準>>>
今年入職花旗,剛進來leader 就交待我去研究mongodb,搭建mongodb分布式集群,之前沒有接觸過這一塊硬著頭皮開始學習mongodb。 到現在已經過去4個月了,今天把學習mongodb的過程中的一些知識和體會寫下來供大叫參考,當然主要可能還是我自己看。關于mongodb集群環境的搭建大家可以看我的另一篇博客,我給出了mongodb測試環境集群的詳細地搭建過程,當然也給出了高可用分布式生產環境集群的架構策略。因為入職一個月之后新人需要開一個技術演說的session,我的選題就是mognodb的研究,這里我會配合我的PPT進行講解,這個過程會涉及很多基礎的計算機知識,相信大家看了應該是大有幫助
我有幾張阿里云幸運券分享給你,用券購買或者升級阿里云相應產品會有特惠驚喜哦!把想要買的產品的幸運券都領走吧!快下手,馬上就要搶光了。
在mongodb中基本的概念是文檔、集合、數據庫,下面我們挨個介紹
時間換空間
我們可以對比sql和mongodb來了解一下,在關系型數據庫中數據庫下的基本單位是table,而在mongodb中是用collection,一行數據對應的是mongodb中的一個文檔,這就是為什么我們稱mongodb為面向文檔的數據庫,我們注意到mongodb中不存在表連接的情況,關系型數據庫的典型特征是表之間存在關聯關系,mongodb不存在這種表連接語句,那么文檔之間的一對一地以對多,多對多的情況mongodb可以通過在字段中嵌套一個或多個文檔來實現這種關系,我認為這是一種以空間換時間的做法,比如有兩張表用戶表和商品表,一個用戶對應多個商品,假設想要查詢一個用戶下的所有商品信息,在關系型數據庫的查詢中需要鏈表查詢join,我們知道join必然會帶來很多磁盤隨機度的操作,隨機讀無法像順序讀那樣的局部性好,緩存效果不好,反觀Mongodb這種Nosql系統中,可以將一個用戶的對應的所有商品信息嵌套存入該用戶對應的文檔的字段里面去,也就是說這些信息都存在一個文檔中,局部性很好,這樣的雖然磁盤冗余了大量的數據,但卻大大加快了查詢的速度,從當前計算機的發展來看,空間換時間是很正常的,而計算機最關鍵的技術高速緩存cache技術就是用空間換時間的典范。
轉載于:https://my.oschina.net/u/3611008/blog/1587944
總結
以上是生活随笔為你收集整理的mongodb系列01--基础篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简单看java异常栈
- 下一篇: GNU make manual 翻译(