假设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; - 请务必阅读此内容!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top