亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

何時使用MongoDB或其他面向文檔的數據庫系統?

何時使用MongoDB或其他面向文檔的數據庫系統?

慕后森 2019-12-06 16:02:51
我們提供了一個用于視頻和音頻剪輯,照片和矢量圖像的平臺。我們從MySQL作為數據庫后端開始,最近加入了MongoDB來存儲文件的所有元信息,因為MongoDB更適合要求。例如:照片可能具有Exif信息,視頻也可能具有音軌,我們也想在其中存儲元信息。視頻和矢量圖形不共享任何常見的元信息,等等。因此,我知道MongoDB非常適合存儲這種非結構化數據并保持其可搜索性。但是,我們將繼續開發平臺并添加功能?,F在,下一步就是為我們的用戶提供一個論壇?,F在出現的問題是:使用MySQL數據庫,這將是存儲論壇和論壇帖子等的不錯選擇,還是為此使用MongoDB?所以問題是:何時使用MongoDB以及何時使用RDBMS。如果可以選擇的話,您會選擇mongoDB還是MySQL?為什么選擇它?
查看完整描述

3 回答

?
慕俠2389804

TA貢獻1719條經驗 獲得超6個贊

在將MongoDb用于社交應用程序兩年后,我見證了沒有SQL RDBMS的生活真正意味著什么。

  1. 您最終要寫作業來做一些事情,例如從不同的表/集合中加入數據,而RDBMS會自動為您做這些事情。

  2. 您使用NoSQL的查詢功能嚴重受損。MongoDb可能是最接近SQL的東西,但仍然遠遠落后。相信我。SQL查詢超級直觀,靈活而強大。MongoDb查詢不是。

  3. MongoDb查詢只能從一個集合中檢索數據,并且只能利用一個索引。MongoDb可能是最靈活的NoSQL數據庫之一。在許多情況下,這意味著需要更多往返服務器才能找到相關記錄。然后開始對數據進行非規范化-這意味著后臺作業。

  4. 它不是關系數據庫這一事實意味著您將沒有外鍵約束(某些人認為它們表現不佳)以確保數據一致。我向您保證,這最終將在您的數據庫中造成數據不一致。做好準備 您很可能會開始編寫流程或檢查以保持數據庫的一致性,這可能不會比讓RDBMS為您做的更好。

  5. 忘記像休眠這樣的成熟框架。

我相信,使用典型的SQL RDBMS,所有項目中的98%可能比使用NoSQL更好。


查看完整回答
反對 回復 2019-12-06
?
慕工程0101907

TA貢獻1887條經驗 獲得超5個贊

存儲這些非結構化數據

如您所說,MongoDB最適合存儲非結構化數據。這樣可以將您的數據整理成文檔格式。這些稱為NoSQL數據存儲區(MongoDB,CouchDB,Voldemort)的RDBMS替代方案對于大規模擴展且需要從這些大數據存儲區更快地訪問數據的應用程序非常有用。

這些數據庫的實現比常規的RDBMS更簡單。由于這些是簡單的鍵值或文檔樣式的二進制對象,因此直接序列化到磁盤中。這些數據存儲不會強制使用ACID屬性和任何模式。這不提供任何交易功能。因此,這可以擴大規模,并且我們可以實現更快的訪問(讀取和寫入)。

但是相比之下,RDBM對數據執行ACID和架構。如果您想使用結構化數據,則可以繼續使用RDBM。

我會選擇MySQL創建此類論壇。因為這不會擴大規模。這是一個非常簡單(通用)的應用程序,具有數據之間的結構化關系。


查看完整回答
反對 回復 2019-12-06
  • 3 回答
  • 0 關注
  • 914 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號