我将从具有慢速互联网连接的数据存储中获取大量数据。获取数据后,我必须解析csv文件,修复错误并将结果存储在数据库中。我不需要永远保存这些数据。只有在我们需要根据这些数据创建报告时才需要它。但是将它保留在系统中意味着更快的响应,我们不必每次都解析/清理/修复csv文件中的错误。问题是我们的系统存储空间要小得多。所以我不能将所有已解析/干净的数据保存在我们的系统中。在某些时候,我必须删除此数据,当再次请求此数据时,我们必须再次获取,解析和清理它。我想要有删除旧数据的政策。何时删除已清理的数据?有人可以就这个问题提出建议吗?
答案 0 :(得分:0)
您正在描述一个经典的缓存问题,即您拥有较大但速度较慢的存储介质以及无法容纳所有数据的小而快速的存储介质。
理想情况下,您会丢弃将来不会被大量使用的数据。但是,通常很难预测未来的访问模式。因此人们使用启发式方法做出明智的猜测。
一种启发式算法最近最少使用。这假设如果我最近没有使用过数据项,那么我将来不会再使用它。为此,您将丢弃具有最早访问时间的数据。
另一种方法是丢弃最不常用的数据。
有关详细信息,您可以查看有关浏览器缓存和操作系统磁盘缓存的文章。