1

我目前正在研究 asp.net mvc4 Web 应用程序。应用程序的一部分,用户可以登录和浏览站点等。站点的数据存储在 sql server 数据库中,包含用户信息等。

该网站的一项新功能是让所有用户都可以对网站上显示的特定产品添加评论。由于可能有数十万客户和数千种产品,因此数据量很大。

所以我已经开始寻找这个数据的 NoSql 选项,而不是将它存储在关系 sql server 数据库中。我一直在看Mongo Db。我的第一个问题,这是我采取的正确方法吗?

下一个主题,c#/.net 与 mongo 数据库集成的难易程度。我以前没有使用过这个,所以我在这方面的知识很差。理想情况下,我会根据特定的产品标识符查询(为了正确的术语)mongo db 以获取评论。我想我可以编写一个查询样式来获取这些数据。

我的下一个问题是关于 mongo db 的冗余。使用 sql server,如果主数据库服务器出现问题,我有一个故障转移服务器。mongo 是否有类似的概念或它是如何工作的?我的考虑是让 mongo 与 sql server 数据库在同一台服务器上运行。mongo db 中的数据不会是关键任务,但 sql server 中的数据是。我的 Web 应用程序将在负载平衡环境中的多台服务器上运行。

mongo db 可以轻松移动到另一台服务器吗?IE。它的扩展程度如何。甚至可以将其中的数据复制到另一个 mongo db 吗?

我很欣赏我的问题是初学者标准,但我目前正在研究这个主题,所以帮助会很大。

4

4 回答 4

1

只要您配置了一些缓存,Sql server 就足以容纳评论。Sql Server 的优点是外键的数据完整性以及查询能力。

但是,在 C# 中使用 Mongo 并不是什么大问题。有一个轻微的学习曲线,但这是学习任何新技术。

连接和使用 MongoDB

MongoDB 有官方驱动程序和 NuGet 包供您使用。http://www.mongodb.org/display/DOCS/CSharp+Language+Center以获取更多信息。

冗余

Mongo 支持副本集,您的第二台服务器将模仿来自第一台服务器的所有数据。可以在此处找到有关设置的信息:http ://docs.mongodb.org/manual/tutorial/deploy-replica-set/应该注意的是,MongoDB 中的查询与 Sql Server 中的查询有点不同。

现在我个人在我的一个企业应用程序中使用 mongoDB,但我会根据经验说:如果你不是绝对需要使用它,那么坚持使用一个数据库引擎可能会更好。大多数情况下,您只需要管理一个数据库引擎。不过只是我的看法。也许redis用于缓存?

于 2012-10-18T21:41:25.490 回答
0

事情是在mongodb设计中你会做一种非规范化......

在我看来,成千上万的用户案例你的 sql 服务器就足够了......在你的数据库设计中做更多的非规范化并尝试实现良好的缓存设计......

你说你是 mongodb 的新手......所以会有一个学习曲线......放更多的 rams 和 cpus,直到你拥有数百万用户......

为了安全地使用 mongodb,您将需要至少 3 台服务器

另请检查此链接

这是 mongodb 允许分片/缩放的最佳最小设置吗?

于 2012-10-20T18:31:02.927 回答
0

如果您没有硬件内存问题(您可以购买大量内存,您将需要)Mongo 可以成为您的解决方案。

于 2012-10-19T08:46:55.837 回答