我有一个连续添加数据的大型数据库,并且有许多用户使用这些数据。基于某些逻辑,我从数据库中选择一些行,将其发送给用户并将其标记为已读。但我觉得这种方法效率很低,因为它读取了非常大量的行,其中只有10个未读取,每次读取整个数据库需要很长时间。
这些是我的问题
1,有没有办法将未读的行与读取的行分开,以便我 轻松选择数据库中未读的行。此外,还有许多用户为特定用户查找未读行,这仍然很难。
2,存储哪些行的最有效方法是什么? 不同的用户。现在,对于每一行,我都会存储所有已阅读过的用户 那一排。这种方法也很有效,因为它很大 用户随机消费用户和数据的数量。
答案 0 :(得分:1)
将ReadRows
与两个重要列UserId
和RowId
分开设置。 RowId
将是用户读取的行的id。每个用户在表中都有多行。将行标记为“已读”的过程是将行插入此表的过程。
您可以通过创建索引ReadRows(UserId, RowId)
来提高效率。这样可以快速访问任何给定用户的行。