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