我在看sql和nosql数据库,即mysql和dynamodb(都在aws上)。
我正在构建一个交友/社交网络,我所构建的演示使用了一个mysql数据库,其中有大约50个表用于数据的逻辑分离,然后使用sql查询(通常带有连接)提取所需的数据片段发送回浏览器。
我要搬到aws,正在重建系统,想知道是否有可能在nosql中100%地编写这样的站点。我知道你不知道这个网站的具体内容,但它可以与任何其他的约会/社交网络相比,比如Facebook(显然更多地参与其中)或eHarmony/Match Maker等……
一个社交网站可以100%建立在NoSQL上吗?或者nosql和sql的混合是否会变得现实?
谢谢
最佳答案
这是一个很难回答的问题,没有一个更深入的了解,究竟什么特点,你是在追求,什么语言,你将写的网站。有很多不同类型的nosql解决方案。
像dynamo和cassandra这样的nosql数据库是关键的价值存储。它们提供的特性与mongodb和ravendb等文档数据库截然不同。还有很多其他类型的。
就我个人而言,写一个完全基于ravendb的社交媒体网站会更舒服。但那是因为我倾向于关注领域驱动的设计,喜欢用.net/c编写。它具有你需要的所有特性,比如查询索引、大数据作业的地图/缩小、全文搜索和空间距离接近搜索。如果你想用php或javascript编程,你可以使用他们的http/rest api,但是他们的c客户端更容易使用。
你的要求可能和我的不同。我鼓励您在使用nosql技术之前尝试几种不同的nosql技术。您可能仍然会发现,对于nosql解决方案无法处理的某些事情,您需要一个sql(或mysql)数据库。例如,ravendb不推荐用于特别报告,因此许多人建立了一个单独的sql server数据库,并将数据从raven复制到sql中,这样他们就可以为超级用户提供单独的报告数据库。