3 回答

TA貢獻1719條經驗 獲得超6個贊
在將MongoDb用于社交應用程序兩年后,我見證了沒有SQL RDBMS的生活真正意味著什么。
您最終要寫作業來做一些事情,例如從不同的表/集合中加入數據,而RDBMS會自動為您做這些事情。
您使用NoSQL的查詢功能嚴重受損。MongoDb可能是最接近SQL的東西,但仍然遠遠落后。相信我。SQL查詢超級直觀,靈活而強大。MongoDb查詢不是。
MongoDb查詢只能從一個集合中檢索數據,并且只能利用一個索引。MongoDb可能是最靈活的NoSQL數據庫之一。在許多情況下,這意味著需要更多往返服務器才能找到相關記錄。然后開始對數據進行非規范化-這意味著后臺作業。
它不是關系數據庫這一事實意味著您將沒有外鍵約束(某些人認為它們表現不佳)以確保數據一致。我向您保證,這最終將在您的數據庫中造成數據不一致。做好準備 您很可能會開始編寫流程或檢查以保持數據庫的一致性,這可能不會比讓RDBMS為您做的更好。
忘記像休眠這樣的成熟框架。
我相信,使用典型的SQL RDBMS,所有項目中的98%可能比使用NoSQL更好。

TA貢獻1887條經驗 獲得超5個贊
存儲這些非結構化數據
如您所說,MongoDB最適合存儲非結構化數據。這樣可以將您的數據整理成文檔格式。這些稱為NoSQL數據存儲區(MongoDB,CouchDB,Voldemort)的RDBMS替代方案對于大規模擴展且需要從這些大數據存儲區更快地訪問數據的應用程序非常有用。
這些數據庫的實現比常規的RDBMS更簡單。由于這些是簡單的鍵值或文檔樣式的二進制對象,因此直接序列化到磁盤中。這些數據存儲不會強制使用ACID屬性和任何模式。這不提供任何交易功能。因此,這可以擴大規模,并且我們可以實現更快的訪問(讀取和寫入)。
但是相比之下,RDBM對數據執行ACID和架構。如果您想使用結構化數據,則可以繼續使用RDBM。
我會選擇MySQL創建此類論壇。因為這不會擴大規模。這是一個非常簡單(通用)的應用程序,具有數據之間的結構化關系。
添加回答
舉報