(这个属于设计缺陷,但是今天只在问题之上探寻解决方案)
在做这件事情的时候,需要考虑到以下几点:
1.不能影响到原先的业务逻辑,一个好的解决方案应该是可以兼容历史的
2.保证效率,新加的逻辑不能拖慢已有业务的执行效率,也就是说,修改需要在性能基本不变或者更优的基础上进行
数据界定与数据操作
如何准确在数据中划定界限,实现时间节点之前的数据和时间节点之后的数据的有效分离。然后在划定的范围内进行数据操作
第一种、将耗时的操作提出去,我们可以把原有操作进行拆分,分为两个部分,即数据备份与数据操作
该方法的重点在于数据备份的时机与耗时问题,但是无论怎样,这个界定都不够准确,在有些场景下或许就够用了
第二种、将时间线之后的某段时间数据做备份,延迟入库,该方案会极大程度上的影响到原有数据的各种场景应用问题,但是对于数据用途较为单一的业务,还是较为有用的
以上两种方案,其根本均在于实现动态数据静态化。
归于根本,如何实现动态数据静态化操作
最为直接的方案,应该是创造一个基于时间的数据切片,然后基于该切片来进行操作,然后将操作结果反馈于我们原有的数据表。
一开始的两种方案都属于具体实现,但是实现方式必然不止于此
可以添加一个切片数据表/文件,专门用来做特定操作
比如,时间段内入库时同步入库切片表/文件
应该还有其他方案,暂时没想到,当前这个方案感觉还能用