【问题标题】:Question about DB of social networking websites关于社交网站数据库的问题
【发布时间】:2011-03-30 04:39:46
【问题描述】:

就像 facebook,每个人的墙上都有消息。所有消息是否只存储在一张表中?并且在加载页面时只会显示属于用户ID的消息?如果是,那么该表中将有这么多行。一张表的行数有限制吗?

或者每个用户只有一张表只存储自己的消息?

【问题讨论】:

    标签: mysql database nosql cassandra


    【解决方案1】:

    据我所知,Facebook 的墙根本没有存储在 MySQL 中。他们使用 Cassandra - 我认为是 Apache 的 NoSQL 数据库,作为 NoSQL,它使用与 relative 关系数据库(如 MySQL)完全不同的哲学

    http://en.wikipedia.org/wiki/Apache_Cassandra

    他们使用 MySQL 来处理其他数据。

    在这里也可以看到类似的问题(已回答):

    Facebook wall's database structure

    【讨论】:

    • 第一次听说 Cassandra,答案很好 :) 在新的 SO 日黎明时 +1。
    • 你的意思是“关系”而不是“相对”:P
    【解决方案2】:

    或者每个用户只有一个表存储 他们自己的消息?

    这不是一个好主意,您最终可能会得到很多桌子。多行更好。

    我会简单地使用一个“表”,将message_iduser_id 与适当的索引配对,以快速找到归属于特定用户的消息。

    行数是否有限制 桌子?

    引用MySQL 5.1 Features:

    支持大型数据库。我们用 带有数据库的 MySQL 服务器 包含 5000 万条记录。我们也 了解使用 MySQL Server 的用户 有 200,000 张桌子和大约 5,000,000,000 行。

    【讨论】:

    • 大量表和动态 SQL,因为 SQL 不允许动态 FROM 或 JOIN 子句...
    猜你喜欢
    • 1970-01-01
    • 2011-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-14
    • 1970-01-01
    • 2011-09-24
    相关资源
    最近更新 更多