2012-11-13 94 views
2

我正在用Asp.Net MVC 4和C#構建一個網站,託管在VPS中。該網站有很多共享評論/回覆功能(我需要存儲很多評論)。我打算使用MongoDB作爲它的免費版本,也非常適合存儲博客/評論,但有一點猶豫after I read this article使用MongoDB和SQL Server Express與Asp.net MVC

因此,現在我正在考慮使用MongoDb來存儲註釋和回覆,以及SQL Server Express版本的10GB限制,用於存儲用戶帳戶和其他用戶配置文件數據。

在一個web應用程序中使用2個不同的數據庫就好嗎?或者是否有任何其他穩定的文檔數據庫與MongoDb類似,我可以使用並且不必使用SQL Server? RavenDb是一個選項嗎? 在此先感謝!

+0

@Jonathan這個問題是關於Rails和Ruby的寶石。我不認爲它適用於這裏(關於ASP.NET MVC的問題)。那裏的答案不會幫助OP。 – ashes999

回答

2

是的,在一個Web應用程序中使用兩個不同的數據庫是可以的。甚至更多 - 這樣做非常好,因爲每種類型的數據庫都有它的缺點和優點,並且它們不適合做任何工作。您可能選擇了MongoDB,因爲您已經聽說它對存儲大量數據和繁重的查詢非常有用。這基本上是真實的,但有一些警告。另一方面,SQL Server可能會慢得多(取決於確切的工作流程),並且可能會因重寫而輕鬆過載。首先 - 它確實運作良好。大多。它在重負載時儘可能地努力。但是,與其他一些平行寫入(因爲大量使用鎖定)相比,寫入效率並不高,而且如果您必須保持某些集合或文檔同步,則它不是「非常安全」的。 SQL事務,它在不同的表中做了很多事情,因爲mongo不會給你任何比文檔級事務更多的東西(每個文檔的更改都是原子的)。
還有其他穩定的文檔數據庫,例如看看CouchDB--它更多的是面向寫入的,並且由於多版本併發控制而具有一些有趣的可能性。

+0

謝謝!我正在考慮在NoSql數據庫上存儲帖子/評論。我還需要在Sql數據庫中存儲副本,以備份?我正在看RavenDB,但他們不是免費的:(我現在正在查看redis。有沒有人在使用redis時遇到過大量使用redis的問題?謝謝! – user636525

+0

你不需要 - 你可以。只是依賴於你的工作流程,但是 - 這樣你就可以使用NoSQL DB進行緩存,這需要使用緩存而不是NoSQL DB。因爲你想對最終數據做一些編輯(比如posts),所以我會不建議在MySQL中保留備份,而是使用NoSQL DB備份工具,然後設計得更乾淨。 –

+0

謝謝,最後一件事,我希望使用nosql作爲姓和名查找,您認爲使用緩存是一個更好的主意?我想知道我是否有成千上萬的用戶,你認爲這會是一個問題嗎? – user636525