【发布时间】:2011-08-03 16:41:11
【问题描述】:
http://twitter.com/#!/ladygaga
当ladygaga发1条消息时,是否意味着为她的每个关注者(总计12,221,751)插入1条数据记录?那么总共插入了 12,221,751 条记录?
设计这样一个社交提要系统有什么线索吗?
------------------- 编辑行 -------------- ------------------
真正的问题:
在谷歌应用引擎中无法执行 SELECT tweet FROM Tweets IN ([FollowingIDs]),这限制了 IN 子句中最多 30 个项目
虽然在应用引擎中它实际上意味着并行执行 30 个查询,但我猜这样做不是很明智。
即使我被允许超过 30 个限制, 如果我订阅 10000 人怎么办?我不确定在 MYSQL 或使用“IN 子句”的任何其他类型的数据库基础架构中是否存在任何性能问题 (app引擎的bigtable不同于MYSQL)
那么使用IN子句查询比较好? 或者设置一个 UserFeed 表来存储提要关系? 还是第三种方法?
数据库/SQL专家请帮忙
【问题讨论】:
-
我什至无法正确描述阅读此问题时遇到的烦恼程度。为什么每个用户的提要都不能简单地选择
top x tweets where tweeterId in usersSubscriptions?我真的想要“aaaaaaargh”作为“投票结束”的理由。 -
是的,我想我应该在之前的问题中添加这个示例。我的问题应该是:如果我有 10000 人关注,会有性能问题吗? “SELECT * FROM tweets WHERE owner IN (user1_id, user2_id.....user10000_id)”?