mysql - 从大型数据存储中获取数据时如何处理存储限制?

标签 mysql algorithm caching

我将从互联网连接速度较慢的数据存储中获取大量数据。获取数据后,我必须解析 csv 文件,修复错误并将结果存储在数据库中。我不需要永远保留这些数据。仅当我们需要基于此数据创建报告时才需要它。但是将其保留在系统中意味着更快的响应,并且我们不必每次都解析/清理/修复 csv 文件中的错误。问题是我们的系统的存储空间要小得多。所以我无法将所有已解析/干净的数据保留在我们的系统上。在某些时候,我必须删除这些数据,当再次请求该数据时,我们必须再次获取、解析和清理它。我想要制定删除旧数据的政策。什么时候删除已清理的数据?有人可以针对这个问题提出建议吗?

最佳答案

您正在描述一个经典的缓存问题,其中您有一个大但速度慢的存储介质和一个小但快速的存储介质,无法容纳所有数据。

理想情况下,您可以丢弃将来不会经常使用的数据。然而,通常很难预测 future 的访问模式。因此,人们使用启发法来做出明智的猜测。

一个启发式是最近最少使用的。这假设如果我最近没有使用过某个数据项,那么我将来也不会经常使用它。为此,您将丢弃访问时间最早的数据。

另一种方法是丢弃最不常用的数据。

有关更多信息,您可以查看有关浏览器缓存和操作系统磁盘缓存的文章。

关于mysql - 从大型数据存储中获取数据时如何处理存储限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26760963/

相关文章:

javascript - Ajax 请求未加载新数据

python - 在 python 中运行 mySql 命令

c++ - 是否有办法使用Booth算法捕获二进制乘法期间的上溢/下溢?

c# - 使用 Floyd-Warshall 算法寻找迷宫

c# - 模拟 System.Web.Caching.Cache - 模拟或检查 null?

python - 缓存磁盘操作

mysql - 陷入数据库结构困境

python - Mysql 在一个查询中进行转换和比较?

mysql - 从本地主机看不到数据库,但在连接到服务器时看到它

C 中的凯撒密码有时只有效?