3 回答

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

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