我想说,我会很高兴得到任何答复。我将尝试构建我的文本以便更好地理解。
情况 我运行主题互联网论坛,您可以在其中将主题添加为菜单中的收藏夹,菜单显示这些主题中的新帖子数量。因此,每次您重新加载页面(在整个站点上的任何位置)时,都会检查您收藏夹中所有主题的新帖子。
问题 这在 DB 上当然是相当昂贵的,因为通常有 20-50 个收藏夹,如果在这些主题中添加了任何帖子,我必须检查 DB。平均主题有 1000-2000 个帖子。这发生在每个用户的每次浏览量上,每月浏览量约为 900 000 次。
可能的解决方案 1 我存储每个主题中的帖子总数,并为每个用户存储每个主题的最后查看帖子的数量。这可能是最快的,但它有很多缺点,这些缺点是功能性的(删除、过滤帖子等)。
可能的解决方案 2 我为每个用户存储每个主题的最后查看帖子的 ID。这是一个很好的解决方案,但比前一个慢十倍。
数据库 我将所有主题的所有帖子存储在一个巨大的表中 = 数十万个帖子。
问题 我想删除带来解决方案 1 的问题,但我需要保持速度。我想为每个主题创建一个表格并使用解决方案 2,但我不知道它是否会有所帮助。因此,如果您有任何经验,请告诉我最快的解决方案是什么。
非常感谢。