關於MogonDB在面試中可以會遇到的幾個問題

2021-10-01 10:28:44 字數 2080 閱讀 2906

1、需求變化新繁:開發要更加敏建,開發成本和維護成本要更低,要能夠快速地更新進化,功能要在最短的周明內上線。

2.客戶端/api支援,因為這直接影響開發效率

3.部署和使用簡單

4.擴充套件能力強

5.節省系統資源,對cpu等資源耗費較小

滿足這些要求的nosq(方率,就剩下了mongodb和redis了,對於reds,我並不是說他不好。而是有-個重要原因,我們的專案的數算處理格式都是採用ison的形式來處理的,這一點對於後來兩者之間的選擇,起到了決定性作用。當然,redis對豐富資料型別的操作很吸引人,可以輕鬆解決一些應用場量, 其讀寫效能也相當高,當前的版本是儲存和記憶體是掛鉤的,這樣如果儲存大量的資料需要消耗太多的記憶體,當然現在的版本已經麼有這樣的問題了。

mongodb是-乙個面向文件的資料庫,功能豐富,齊全,完全可以替代mysql.

1.使用json風格語法,易於掌握和理解: mongodb使用json的變種bson作為內部儲存的格式和語法。針對mongod的操作都使用ison風格語法,客戶端提交或接收的資料都使用ison形式來展現。相對於sql來說,更加直觀,容易理解和掌握。

2.schema-less, 支援嵌入子文件: mongodb是乙個schema-fee的文件資料庫。 乙個資料庫可以有多個collection,每個collection是documents的集台。 collection和document和傳統資料庫的table和row並不對等。無需事先定義collection, 隨時可以建立。collection中可以包含具有不同schema的文件記錄。 這意味看, 你上一條記錄中的文件有3個屬性。而下一親記錄的文件可以有10個屬性,屬性的型別既可以是基本的資料型別(如數字。字元電。日期等),也可以是陣列或者酸列。甚至還可以是一乙個子文件(embed document)。這樣。可以實現逆規範化(denomilizing) 的資料模型,提高查間的速度。

3.簡單易用的查詢方式:直接使用json,支援範圍查詢,正規表示式查詢。

1.mongodb對事物的支援較弱:高度事務性系統, 例如銀行、財務等系統不適合。

2.涉及到複雜的.高度優化的查詢方式:傳統的商業智慧型應用,特定問題的資料分析,多資料實體關聯等不適合。

3.資料結構相對固定,使用關係型資料庫更好合理,使用sq|進行查詢統計更加便利的時候等不適合。

在不開啟journal日誌時是有可能導致資料丟失的(在60s之間或還沒有到達2g時伺服器宕機),但在開啟了

journal日誌時資料是不會丟失的,journal 日誌類似於關聯式資料庫中的事務日誌。journaling能夠使mongodb資料庫由於意外故障後快速恢復。mongodb2. 4版本後預設開啟了journaling日誌功能mongod例項每次啟動時都會檢查。

mongodb提供了各種資料庫角色和登入驗證,不同的角色具有不同的操作許可權,與關係型資料庫類似。

在服務執行過程中難免會出現主機宕機的情況,前面已經說到即使mongodb主機宕機也不會導致資料的丟失,但只能做到這點是不夠的,還需要在主機宕機時還能正常對外提供服務,這就是集群容錯。

mongodb提供了倆種方式:

1.可複製集:

提供的功能:

1,避免資料丟失,保障資料安全,提高系統安全性; (最少3節點最大50節點)

2.自動化災備機制,主節點宕機後通過選舉產生新主機;提高系統健壯性; (7個選舉節點 上限)

3.讀寫分離負載均衡,提高系統效能;

2.分片集群

可複製集的乙個缺點是每台mongodb伺服器都保有所有的資料,當資料量特別大時對cpu,記憶體要求就會越來越高,直到達到效能的瓶頸。分片集群為解決此問題而產生,分片集群就是不同的分片區域保有一部分資料, 通過路由**到對應的分片區域進行資料的讀寫。每個分片區域可以是乙個可復 制集,以此達到對更大資料量的容錯。

1.強大的查詢語句,物件導向的查詢語言,基本覆蓋sq|語言所有能力;

2.完整的索引支援,支援查詢計畫;

3.使用記憶體對映儲存引擎,把磁碟的io操作轉換成為記憶體的操作;查詢效率更高

在 OpenGL中可以啟用的效能

啟用opengl某一效能可以使用glenable函式,函式定義 void glenable glenum cap 抑制opengl某一效能可以使用gldisable函式,函式定義 void gldisable glenum cap 函式glisenabled用於獲取指定效能是否啟用 glget函式有...

RaceWeb終於可以在oracle中快速建表了

一直沒時間弄,這幾天終於抽點時間搞一下程式,成功了。記錄一下,慶賀一下。目前raceweb可以支援的資料庫型別有firebird sqlserver oracle。下一步目標是sqlite。2014 6 10 17 25 57 2014 6 10 17 25 57 oracle 連線成功。2014 ...

關於 delphi中with在Python中的討論

下面這段是我昨天在python乙個討論群裡對delphi中with在python中的討論,希望能對大家有所啟發,同時我也將這個討論記錄下來,有時間多體會體會。不要小看這段,最後 seewind 說的話很經典。江南 23 46 27 其實 我覺得是想找 python中類似 delphi 的 with ...