測試運維工程師&基礎知識必備之MongoDB篇
Part1:
NO1我怎麼檢視 Mongo 正在使用的連結?
db._adminCommand("connPoolStats");
NO2mongodb的結構介紹
資料庫中儲存的物件設計bson,一種類似json的二進位制檔案,由鍵值對組成
NO3為什麼MongoDB的資料檔案很大?
MongoDB採用的預分配空間的方式來防止檔案碎片
NO4MongoDB在A:{B,C}上建立索引,查詢A:{B,C}和A:{C,B}都會使用索引嗎?
不會,只會在A:{B,C}上使用索引
NO5非關係型資料庫有哪些?
Membase、MongoDB、Hypertable
NO6如何理解MongoDB中的GridFS機制,MongoDB為何使用GridFS來儲存檔案?
GridFS是一種將大型檔案儲存在MongoDB中的檔案規範。使用GridFS可以將大檔案分隔成多個小文件存放,這樣我們能夠有效的儲存大文件,而且解決了BSON物件有限制的問題。
NO7資料在什麼時候才會擴充套件到多個分片(shard)裡?
mongodb分片是基於區域的,所以一個集合的所有物件都放置在同一個塊中,只有當存在多餘一個塊的時候,才會有多個分片獲取資料的選項
NO8當我試圖更新一個正在被遷移的塊(chunk)上的文件時會發生什麼?
會立即更新舊的分片,然後更改才會在所有權轉移前複製到新的分片上
NO9分片(sharding)和複製(replication)是怎樣工作的?
分片可能是單一的伺服器或者叢集組成,推薦使用叢集
NO10分析器在MongoDB中的作用是什麼?
分析器就是explain 顯示每次操作效能特點的資料庫分析器。通過分析器可能查詢比預期慢的操作
Part 2:
NO1MySQL和MongoDB之間最基本的區別是什麼?
關係型資料庫與非關係型資料庫的區別,即資料儲存結構的不同。
NO2MongoDB的特點是什麼?
面向文件
高效能
高可用
易擴充套件
豐富的查詢語言
NO3MongoDB支援儲存過程嗎?如果支援的話,怎麼用?
MongoDB支援儲存過程,它是javascript寫的,儲存在db.system.js表中。
NO4資料庫三正規化?
1NF 屬性不可分
2NF 非主鍵屬性,完全依賴於主鍵屬性
3NF 非主鍵屬性無傳遞依賴
NO5死鎖怎麼解決?
找到程序號,kill 程序。
NO6有哪些鎖,select時怎麼加排它鎖
樂觀鎖:自己實現,通過版本號
悲觀鎖:共享鎖,多個事務,只能讀不能寫,加 lock in share mode
排它鎖:一個事務,只能寫,for update
行鎖
表鎖
NO7使用mongodb的優點?
面向檔案
高效能
高可用
易擴充套件
可分片
對資料儲存友好
NO8分析器在MongoDB中的作用是什麼?
分析器就是explain 顯示每次操作效能特點的資料庫分析器。通過分析器可能查詢比預期慢的操作