持續輸出面試題之MongoDB篇

開篇介紹

你們好,我是Java最全面試題庫的提褲姐,今天這篇是數據庫面試題系列的第六篇,主要總結了MongoDB相關的面試題;在後續,會沿着第一篇開篇的知識線路一直總結下去,作到日更!若是我能作到百日百更,但願你也能夠跟着百日百刷,一百天養成一個好習慣。mysql

什麼是MongoDB?

MongoDB是一個文檔數據庫,提供好的性能,領先的非關係型數據庫。採用BSON存儲文檔數據。 BSON()是一種類json的一種二進制形式的存儲格式,簡稱Binary JSON. 相對於json多了date類型和二進制數組。面試

關係型數據庫和非關係性數據庫的區別?

關係型數據庫
優勢:算法

  • 數據之間有關係,進行數據的增刪改查的時候是很是方便的
  • 關係型數據庫是有事務操做的,保證數據的完整性和一致性。

缺點:sql

  • 由於數據和數據是有關係的,底層是運行了大量的算法,大量算法會下降系統的效率,會下降性能
  • 面對海量數據的增刪改查的時候會顯的無能爲力
  • 海量數據對數據進行維護變得很是的無力

非關係型數據庫
優勢:mongodb

  • 海量數據的增刪改查是能夠的
  • 海量數據的維護和處理很是輕鬆

缺點:數據庫

  • 數據和數據沒有關係,他們之間就是單獨存在的
  • 非關係數據庫沒有關係,沒有強大的事務關係,沒有保證數據的完整性和安全性

什麼是命令空間

mongodb存儲bson對象在叢集(collection)中。數據庫名字和叢集名字以句點連結起來叫作名字空間(namespace)。
一個集合命名空間又有多個數據域(extent),集合命名空間裏存儲着集合的元數據,好比集合名稱,集合的 第一個數據域和最後一個數據域的位置等等。而一個數據域由若干條文檔(document)組成,每一個數據域都有一個 頭部,記錄着第一條文檔和最後一條文檔的爲知,以及該數據域的一些元數據。extent之間,document之間經過 雙向鏈表鏈接。 索引的存儲數據結構是B樹,索引命名空間存儲着對B樹的根節點的指針。json

MongoDB如何執行事務?

Mongodb沒有使用傳統的鎖或者複雜的帶回滾的事務,由於他設計的宗旨是輕量級,快速以及可預計的高性能,可能把它類比成mysql myisam的自動提交模式,經過精簡對事務的支持,性能獲得了提高,特別是在一個可能會穿過多個服務器的系統裏。數組

mongodb同步刷新數據到磁盤嗎?

不會,磁盤寫操做默認是延遲執行的,寫操做可能在量三秒後到達磁盤,例如,若是一秒內數據庫收到一千個對一個對象遞增的操做,僅刷新磁盤一次。安全

mongodb 使用索引要注意什麼?

一、索引頗有用,可是它也是有成本的;它佔內存,讓寫入變慢
二、mongoDB一般在一次查詢裏使用一個索引,因此多個字段的查詢或者排序須要複合索引才能更加高效;
三、複合索引的順序很是重要
四、在生成環境構建索引每每開銷很大,時間也不能夠接受,在數據量龐大以前儘可能進行查詢優化和構建索引;
五、避免昂貴的查詢,使用查詢分析器記錄那些開銷很大的查詢便於問題排查;
六、經過減小掃描文檔數量來優化查詢,使用explain對開銷大的查詢進行分析並優化;
七、索引是用來查詢小範圍數據的服務器

不適合使用索引的狀況:

  • 每次查詢都須要返回大部分數據的文檔,避免使用索引
  • 寫比讀多

MongoDB支持哪些數據類型?

  • String 字符串
  • Integer 整型數值
  • Double 雙精度浮點值
  • Boolean 布爾值
  • Object 用於內嵌文檔
  • Object ID 對象 ID
  • Arrays 用於將數組或列表或多個值存儲爲一個鍵
  • Min/Max Keys 將一個值與 BSON(二進制的 JSON)元素的最低值和最高值相對比
  • Code 代碼類型
  • Regular Expression

mongoDB 主要使用在什麼場景?

MongoDB 的應用已經滲透到各個領域,好比遊戲、物流、電商、內容管理、社交、物聯網、視頻直播等,如下是幾個實際的應用案例:

  • 遊戲場景,使用 MongoDB 存儲遊戲用戶信息,用戶的裝備、積分等直接之內嵌文檔的形式存儲,方便查詢、更新
  • 物流場景,使用 MongoDB 存儲訂單信息,訂單狀態在運送過程當中會不斷更新,以MongoDB 內嵌數組的形式來存儲,一次查詢就能將訂單全部的變動讀取出來。
  • 社交場景,使用 MongoDB 存儲存儲用戶信息,以及用戶發表的朋友圈信息,經過地理位置索引實現附近的人、地點等功能
  • 物聯網場景,使用 MongoDB 存儲全部接入的智能設備信息,以及設備彙報的日誌信息,並對這些信息進行多維度的分析
  • 視頻直播,使用 MongoDB 存儲用戶信息、禮物信息等
相關文章
相關標籤/搜索