mysql v mongodb - 针对复杂的用户聚焦网站的最佳解决方案?

3 mysql database performance scale mongodb

我花了几天时间研究mysql对我的项目的nosql解决方案(特别是mongodb)的优缺点.

该项目需要能够最终扩展以处理数以万计的并发用户 - 总共数百万用户.该网站非常注重用户,并将与数据库进行交互,如果不是像Facebook这样的网站 - 它是非常关系的,所有功能都取决于与用户的关系以及他们与其他用户的关系.它也是数据繁重 - 许多文件,图像,音频,消息,个人新闻提要等.

我非常喜欢mongodb的外观,我喜欢它的工作方式,我喜欢它的扩展方式 - 但无法理解这对于我描述的网站是如何工作的.是否必须将特定用户的所有交互存储在单个文档中?

然而,我很习惯使用mysql并且喜欢它的关系方面.我只是担心没有很多工作,这个项目会出现可扩展性问题 - 尽管可能有memcached和分片这不是问题吗?

我想从那些有大型项目的两个数据库经验的人那里了解一下mysqlmongodb这个特定工作的正确工具吗?

irc*_*ell 5

如果数据是高度相关的,请使用关系数据库.如果不是,请不要.NoSQL很棒,不要误解我的意思,但它不适合所有任务.它可能适合您的任务,但找到的唯一方法是为您的特定用例构建一些测试.添加一堆虚拟数据(数百万甚至数亿行).然后加载测试它.

就扩展而言,这更像是构建应用程序的一个组件,而不是您选择的后端.你有一个可靠的架构吗?你有一个强大的缓存层与直写缓存?您是否尽可能高效地访问后端(查询等)?你可以根据你的申请进行分类吗?

这些是适合的问题.不是"哪个会更适合我".而不是"哪个是正确的工具".两者都可以做得很好.哪个最好取决于你......