【问题标题】:Twitter like Model using SQL Server/Azure or Graph DBTwitter 喜欢使用 SQL Server/Azure 或 Graph DB 的模型
【发布时间】:2012-04-01 12:18:46
【问题描述】:

是否可以使用 SQL Server 设计一个类似 DB 的 Twitter?一个可确保高可扩展性和快速查询的数据库。

我正在构建一个 .NET 平台,该平台需要类似 twitter 的模型(用户、关注者、推文),并研究在快速查询和可扩展性方面最适合的模型。

是否可以使用关系数据库或图形数据库更好?

【问题讨论】:

    标签: algorithm twitter database-design azure-sql-database sql-graph


    【解决方案1】:

    SQL Server 肯定能够处理您拥有的任何负载。 SQL Azure 支持高达 150GB 的数据库(不过我听说如果你问可以得到更多)。借助 Azure SQL 联合,您可以在全球数百个节点上横向扩展多个数据库。

    对于像 SQL Server 这样的关系数据库,或像 Azure 表存储这样的“NoSQL”变体,这取决于您的需求以及数据的结构。鉴于您可能会进行大量连接、查询用户的关注者、某人应该看到的推文等。您最好选择使用关系数据库。甚至 Facebook 仍然使用 MySQL,因此使用关系数据库并不完全是坏公司。

    【讨论】:

    • 这是不正确的,facebook 使用的是他们自己开发的 NoSQL 数据库,称为 cassandra:en.wikipedia.org/wiki/Apache_Cassandra。他们可能在某个地方使用 mysql,但不是他们的主要后端
    • 对不起,这是不正确的,您的链接实际上也反驳了它。 Cassandra 于 2010 年被 Facebook 抛弃。他们对 MySQL 的使用是众所周知的,以及他们因此而遇到的所有困难。他们为上游做出了巨大贡献,并就他们如何设法扩展 MySQL 进行了讨论。您可以在开发人员页面 [developers.facebook.com/opensource] 上看到“MySQL 是我们数据库基础架构的支柱。您可以在 Launchpad 上找到我们的补丁,并在 MySQL@Facebook 页面上了解我们如何使用它的更多信息。”
    • 收回所有内容,但您必须公平地说,MySQL 仅用于持久存储,而 memchache 位于 MySQL 前面,执行繁重的读取操作,有人可能会争辩说 memchache 是某种形式NoSQL ;)
    • 绝对。除了数据库之外,还有更多的难题。我几乎添加了“以及介于两者之间的大量缓存”:)。但是 OP 询问的是存储,这只是说明性的,或者更令人放心的是,对于 大多数 人来说,关系数据库本身并没有错。显然,您的应用程序的细节最重要。
    • 绝对同意,relational 还远没有死:)
    猜你喜欢
    • 2010-11-26
    • 2017-01-11
    • 2017-05-24
    • 1970-01-01
    • 1970-01-01
    • 2011-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多