我将通过慢速的互联网连接从数据存储中获取大量数据。提取数据后,我必须解析csv文件,修复错误并将结果存储在db中。我不需要永远保留这些数据。仅当我们需要基于此数据创建报告时才需要。但是将其保留在系统中意味着更快的响应,我们不必每次都解析/清除/修复csv文件中的错误。问题在于我们的系统的存储空间要小得多。因此,我无法将所有已解析/清除的数据保留在我们的系统上。在某些时候,我必须删除该数据,并且当再次请求该数据时,我们必须再次获取,解析和清理它。我想要删除旧数据的政策。什么时候删除清除的数据?有人可以对这个问题提出建议吗?
最佳答案
您正在描述一个经典的缓存问题,在该问题中,您有一个容量大但速度慢的存储介质,又有一个容量小但速度快的存储介质,无法容纳所有数据。
理想情况下,您丢弃那些将来不会使用太多的数据。但是,通常很难预测将来的访问模式。因此,人们使用启发式进行明智的猜测。
最近最少使用一种启发式方法。这是假设如果我最近没有使用过数据项,那么将来我不会使用太多。为此,您丢弃访问时间最久的数据。
另一种方法是丢弃最不常用的数据。
有关更多信息,您可以查看有关浏览器缓存和OS磁盘缓存的文章。
关于mysql - 从大型数据存储中获取数据时,如何处理存储限制?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26760963/