题
假设A跟随100人,
然后将需要100个连接语句,
这对我认为的数据库来说太可怕了。
还是有其他方式?
解决方案
为什么你需要100个连接?
你会有一个简单的表<!> quot;跟随<!> quot;用你的身份证和其他人身份证......
然后你检索<!>“;推文<!>”;通过加入这样的东西:
Select top 100
tweet.*
from
tweet
inner join
followers on follower.id = tweet.AuthorID
where
followers.masterID = yourID
现在你只需要一个体面的缓存,并确保你使用非锁定查询,并且你拥有所有信息...(好吧可能在混合中添加一些用户数据)
编辑:
鸣叫
ID - tweetid
AuthorID - ID of the poster
关注
MasterID - (Basically your ID)
FollowerID - (ID of the person following you)
Followers
表具有基于master和followerID
的复合ID
它应该有2个索引 - 一个在<!>上; masterID - followerID <!> quot;一个在<!>上; FollowerID和MasterID <!> <<;
其他提示
真正的诀窍是最小化数据库使用(例如,缓存,缓存,缓存)并理解使用模式。在Twitter的特定情况下,他们使用排队的大量不同技术,大量的内存缓存,以及一些非常聪明的数据流优化。给缩放Twitter:让Twitter快10000%和另一个相关文章阅读。您关于如何实施<!>的问题<!>以下<!>是对数据进行非规范化(预先计算和维护连接表而不是动态执行连接)或 根本不使用数据库 。 <!> lt; - 请务必阅读此内容!
不隶属于 StackOverflow