首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该为社交网络选择关系数据库还是非关系数据库,比如app。

我应该为社交网络选择关系数据库还是非关系数据库,比如app。
EN

Stack Overflow用户
提问于 2010-02-20 18:35:52
回答 3查看 2.8K关注 0票数 1

我正在为我的应用程序选择数据库。我使用MySQL已经很久了,但由于我当前的应用程序性能和可伸缩性很重要,而且我知道MySQL有其局限性,我也听说过很多关于键值存储、基于列的DB和基于文档的DB等方面的信息。我调查了:

  • 卡桑德拉
  • MongoDB
  • Redis
  • CouchDB

它们都似乎(或声称)比关系DB(如MySQL )更快。

我正在使用Rails,所有这些都有客户端,所以应该不会有问题。

我的数据模型在很大程度上是简单的,它以一个用户对象为中心(具有丰富的配置文件和首选项),这些对象涉及到不同的项目,如照片、视频、posts...etc,每一个都有一个或多个标签。

事实上,这些数据库是新的,似乎没有太多的资源为他们在线。另外,它们在结构上是不同的,所以以后从一种切换到另一种是不容易的。

我希望你能给我你的意见,你认为什么DB最适合我的应用程序,将有良好的性能和规模。谢谢,

Tam

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-02-20 19:34:10

第一步)使用任何你最擅长的技术来创建你的设计。

第二步)释放你的社交网络,开始研究非关系数据库,并掌握你觉得最舒服的地方。

步骤3)重构您的数据层,以便您可以使用您新学到的DB技术快速、轻松地替换MySQL。

第4步)等待你的网站变得如此庞大,以至于需要替换MySQL,并开始堵塞漏洞。

我知道这听起来有点厚颜无耻,但我想说的是,当你的软件真正成为人们关注的问题时,你只需要发布你的软件,并开始担心它的规模等等。

票数 9
EN

Stack Overflow用户

发布于 2010-02-20 19:13:54

像文档数据库这样的东西(至少对于应用程序来说)的主要好处是,您可以将整个用户的信息视为一个单一的文档。您不必担心为属性或新特性添加表,而是可以将其大部分保存在用户文档中并动态更新它。

经常读书,很少写字,这是一种享受。

现在,您不需要一个“文档数据库”来做这样的事情。MySQL等人将很好地使用主键和CLOB (text) / BLOB字段来保存文档。

像CouchDB这样的东西(我在这个领域中最熟悉的)可以帮助的地方是,它支持很好的复制,并且很容易就文档的特定属性创建视图(例如,您想要所有的“create”成员,或者其他什么)。

此外,由于CouchDB是HTTP,所以它可以很好地处理现代缓存等可用的缓存,这可以帮助您进行扩展,特别是在读取大量操作时。

与实际工具相比,这更多地是关于整体架构的,所以请确保首先考虑这一点。

票数 0
EN

Stack Overflow用户

发布于 2010-02-20 19:29:09

还有一些大型站点使用的东京内阁

我还没有使用过,但我的理解是,当像Twitter这样的站点需要非常快地转换大量消息时,RDBMS的开销就太大了,并且开始显著降低响应时间。

您需要做的是查看从RDBMS中获得的优势,并权衡它的速度,然后对nosql类型的数据库进行反向权衡。

RDBMS为您提供了一个标准,它为您提供了安全性、完整性和基于集合的通用语言,从而使数据操作更容易。然而,如果您不需要所有或任何这种结构,您就失去了速度。

在SQL之前是CODASYL和网络数据库。SQL是因为技术的可移植性和可转移性而爱上它的,但是我认为移动有线世界正在改变这一点,这是值得研究的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2303193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档