1.什麼是NoSQL資料庫?NoSQL和RDBMS有什麼區別?在哪些情況下使用和不使用NoSQL資料庫?
NoSQL是非關係型資料庫,NoSQL = Not Only SQL。
關係型資料庫採用的結構化的資料,NoSQL採用的是鍵值對的方式儲存資料。
在處理非結構化/半結構化的大資料時;在水平方向上進行擴充時;隨時應對動態增加的資料項目時可以優先考慮使用NoSQL資料庫。
在考慮資料庫的成熟度等級;支援;分析和商業智慧;管理及專業性等問題時,應優先考慮關係型資料庫。
2.非關係型資料庫有哪些?
Membase、MongoDB、Hypertable
3.MySQL和MongoDB之間最基本的區別是什嗎?
關係型資料庫與非關係型資料庫的區別,即資料存放區結構的不同。
4.MongoDB的特點是什嗎?
(1)面向文檔(2)高效能(3)高可用(4)易擴充(5)豐富的查詢語言
5. MongoDB支援預存程序嗎?如果支援的話,怎麼用?
MongoDB支援預存程序,它是javascript寫的,儲存在db.system.js表中。
6.如何理解MongoDB中的GridFS機制,MongoDB為何使用GridFS來隱藏檔?
GridFS是一種將大型檔案儲存體在MongoDB中的檔案規格。使用GridFS可以將大檔案分隔成多個小文檔存放,這樣我們能夠有效儲存大文檔,而且解決了BSON對象有限制的問題。
7.為什麼MongoDB的資料檔案很大?
MongoDB採用的預分配空間的方式來防止檔案片段。
8.當更新一個正在被遷移的塊(Chunk)上的文檔時會發生什嗎?
更新操作會立即發生在舊的塊(Chunk)上,然後更改才會在所有權轉移前複製到新的分區上。
9.MongoDB在A:{B,C}上建立索引,查詢A:{B,C}和A:{C,B}都會使用索引嗎?
不會,只會在A:{B,C}上使用索引。
10.如果一個分區(Shard)停止或很慢的時候,發起一個查詢會怎樣?
如果一個分區停止了,除非查詢設定了“Partial”選項,否則查詢會返回一個錯誤。如果一個分區響應很慢,MongoDB會等待它的響應。