新手问题 “发现” 功能如何实现比较高效?

Insub · 2017年09月20日 · 最后由 Insub 回复于 2017年09月20日 · 1085 次阅读

场景大致如下:

有一个发现栏目,用户点击进去,需要展示编辑勾选的数十个圈子(group)里最新的 100 条主题(topic)的集合,按主题的时间排序

group 表大概有 1 万条数据

topics 表大概有 100 万条数据

group 和 topics 是一对多关系

现在我的做法比较普通,每个用户点击/刷新页面的时候,查询圈子列表里“推荐”字段为 true 的圈子,得到圈子的 ids 集合,再用这个集合去 topics 表里面 where(:group_id => [圈子 ids 数组])这样来查询

请教一下,有没有更好,相对还不那么复杂的办法去做这个事情呢? 每个用户刷新都走一遍这两个表的全表查询好像太....

可以先加个缓存

@lithium4010 是 rails 层面的缓存还是?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号