从SQL中的读取行中分离未读取的内容

时间:2014-12-14 14:14:43

标签: sql database

我有一个连续添加数据的大型数据库,并且有许多用户使用这些数据。基于某些逻辑,我从数据库中选择一些行,将其发送给用户并将其标记为已读。但我觉得这种方法效率很低,因为它读取了非常大量的行,其中只有10个未读取,每次读取整个数据库需要很长时间。

这些是我的问题

  

1,有没有办法将未读的行与读取的行分开,以便我   轻松选择数据库中未读的行。此外,还有许多用户为特定用户查找未读行,这仍然很难。

     

2,存储哪些行的最有效方法是什么?   不同的用户。现在,对于每一行,我都会存储所有已阅读过的用户   那一排。这种方法也很有效,因为它很大   用户随机消费用户和数据的数量。

1 个答案:

答案 0 :(得分:1)

ReadRows与两个重要列UserIdRowId分开设置。 RowId将是用户读取的行的id。每个用户在表中都有多行。将行标记为“已读”的过程是将行插入此表的过程。

您可以通过创建索引ReadRows(UserId, RowId)来提高效率。这样可以快速访问任何给定用户的行。