1

我正在研究 SQL 和 NoSQL 数据库——即 MySQL 和 DynamoDB(都在 AWS)。

我正在构建一个约会/社交网络,我构建的演示一直在使用一个 MySQL 数据库,其中包含大约 50 个表用于数据的逻辑分离,然后使用 SQL 查询(通常带有连接)来提取所需的数据块以发送回浏览器。

我正在迁移到 AWS 并正在重建系统,并想知道是否有可能在 NoSQL 中 100% 编写这样的站点。我知道您不知道该网站的具体情况,但可以将其与任何其他约会/社交网络进行比较,例如 facebook(显然更多参与)或 Eharmony/Match Maker 等...

社交网站能否 100% 建立在 NoSQL 之上?或者 NoSQL 和 SQL 的混合会变得现实吗?

谢谢

4

2 回答 2

4

如果没有更深入地了解您所追求的功能以及您将使用哪种语言编写网站,这是一个非常难以回答的问题。有许多不同类型的 NoSQL 解决方案。

像 Dynamo 和 Cassandra 这样的 NoSQL 数据库是键值存储。它们提供了一组与 MongoDB 和 RavenDB 等文档数据库非常不同的功能。还有很多其他类型。

就个人而言,我会非常乐意编写一个完全基于 RavenDB 的社交媒体网站。但那是因为我倾向于专注于领域驱动设计,并且喜欢用 .Net/C# 编写。它具有您需要的所有功能,例如查询索引、大数据作业的 map/reduce、全文搜索和空间距离邻近搜索。如果你想从 php 或 javascript 编程,你可以使用他们的 http/rest api,但是他们的 C# 客户端更容易使用。

不过,您的要求可能与我的不同。我鼓励您在选择一种之前尝试几种不同的 NoSQL 技术。您可能仍然会发现您需要一个 SQL(或 MySQL)数据库来处理您的 NoSQL 解决方案无法处理的某些事情。例如,不建议将 RavenDB 用于临时报告 - 许多人设置单独的 SQL Server 数据库并将数据从 Raven 复制到 SQL 中,以便他们可以为高级用户提供单独的报告数据库。

于 2012-12-21T04:45:18.783 回答
1

要记住的最重要的事情是大多数 noSQL 引擎(例如Cassandra)不支持查询,因此这必须成为您设计中的一个因素(即,您在 SQL 中认为理所当然的许多事情,例如 JOIN 在 noSQL 解决方案中要困难得多) . 话虽如此,您绝对可以使用 noSQL 解决方案构建功能齐全的应用程序。我鼓励您查看许多供应商提供的资源,例如 Cassandra、MongoDB、Dyanamo 等。

于 2012-12-21T04:20:32.597 回答