为了确定某个对象的使用频率,我使用了一个包含以下字段的表;
id - objectID - timestamp
每次使用一个对象时,它的 ID 都会time()
被添加进去。这使我可以确定一个对象在过去一小时/分钟/秒等中的使用频率。
一小时后,该行无用(我没有检查超过一小时)。但是,我的理解是简单地删除该行是不明智的,因为它可能会弄乱主键(auto_increment ID)。
所以我添加了一个名为“活动”的字段。在检查一个对象的使用频率之前,我循环遍历所有对象WHERE active=1
,如果超过 1 小时,则将其设置为 0。我认为这不会给多个用户之间带来任何并发问题,但这会给我留下很多未使用的数据。
现在我在想,在插入新的使用数据之前,最好检查是否有一个字段,active=0
而不是插入一个新行,用新数据更新那个字段,然后再次将 active 设置为 1。但是,这需要表锁定以防止多个客户端更新同一行。
任何人都可以对此有所了解吗?