1. 程式人生 > >測試運維工程師&基礎知識必備之MongoDB篇

測試運維工程師&基礎知識必備之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 顯示每次操作效能特點的資料庫分析器。通過分析器可能查詢比預期慢的操作