当数百万人喜欢订阅源时,在订阅源列表中填充订阅源的赞状态的最佳方法是什么

时间:2019-05-16 02:53:23

标签: mysql performance

我正在尝试创建一个社交门户网站,例如facebook或instagram,用户可以在其中创建供稿,而其他用户则喜欢。 我正在使用关系数据库Mysql来存储数据。

我的问题:

当用户请求供稿列表并说服务器返回50个供稿列表时,供稿也应具有类似状态(表明用户是否喜欢该特定供稿)。现在,如果某个提要有数百万个喜欢者,那么搜索请求者是否喜欢该提要将花费大量时间,并且由于我必须返回50个此类提要,所以填充提要列表肯定会花费大量时间。

到目前为止,我正在使用存储过程进行此操作。

我有一个用户表,一个供稿表和一个喜欢者表(其中包含feed_id和User_id)。 我的存储过程使用IN查询来填充喜欢的状态。这是有效的,因为我的喜欢人数很少。但是随着喜欢者的增加,这将需要很长时间。

处理它的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

听起来您没有合适的索引;数百万行应该没什么大不了的。

PRIMARY KEY(feed_id, User_id),
INDEX(User_id, feed_id)

请提供SHOW CREATE TABLE和访问该表的SQL语句;我们可能还会提供其他提示。