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