我的数据表是这样设计的,有一个字段是expired_time是用来保存过期的时间的,我想做一个定时器定时扫描表,过期的行我就删掉。可是感觉用定时器可能不太精准,如果定时器间隔比较小,虽然误差小了,但是又感觉会查询得太频繁了。我现在想问,会不会有别的方法做到,更少的误差和更高的性能呢(用缓存是不是也是一个不错的选择)?
2 回答
30秒到达战场
TA贡献1828条经验 获得超6个赞
一些可能的方法可以缓存类似于最后要expired的时间以及对应的id之类的东西,每次只是检查缓存看看是否需要到数据库去删除记录并且更新此缓存。相当于缓存了最优先要删除的记录,只检查缓存。当然这个比较依赖于你的记录基本上是按照expire的顺序排列的才比较有保障或者比较高效。从slave数据进行查询,满足条件再到主数据库删除。把数据直接存储在有expire功能的专门数据库里,到期自动删除,如redis等。
添加回答
举报
0/150
提交
取消