我正在构建一个 RSS 阅读器,它会在阅读帖子时记录(就像 Google Reader 所做的那样)。当我向下滚动时,它会在一定程度上将帖子标记为已读,方法是在“已读文章”表中插入行,该表记录了已读项目 ( ciid
)、阅读该项目的用户 ( uid
) 和阅读日期 ( dateRead
)。
现在,我正在考虑如何提供“全部标记为已读”功能。如果只有 25 篇未读文章,那就足够简单了。我将查询 25 篇文章的主文章表——我有一个子查询来确定哪些文章未读——当前用户未读,收集ciid
需要标记为已读的 s 并插入新的已读条目。但是,如果有 20,000 个条目未读怎么办?ciid
检索 20,000 个未读条目、收集这些条目然后将 20,000 个插入命令发送回 MySQL 服务器似乎效率很低。
有没有更有效的方法来做到这一点,也许是直接处理所有这些的 SQL 查询?如果系统上只有一两个用户,我想我的低效方法不会有问题,但我希望系统能够相对较好地扩展。