【问题标题】:Writing small data to file and reading from it or query the database将小数据写入文件并从中读取或查询数据库
【发布时间】:2013-02-13 10:42:06
【问题描述】:

我有一种情况,我必须查询数据库中的一些数据,这些数据对于所有用户都是相同的并且每天都在变化,所以我想我可以制作一个文件来保存这些数据(每天一次)和然后在每次用户访问我的网站时从该文件中加载它。

现在,我知道当来自数据库的请求很大但我要写入文件的数据是一个简单的 3 位数字时,这是一种常见做法(缓存),所以我的问题是这是否仍然是更快还是只是矫枉过正,我应该坚持使用数据库查询?

【问题讨论】:

  • 您有数百万用户吗?获得该号码是否昂贵?您是否进行了基准测试?
  • @MitchWheat:我有大约 5 万用户。获取一个数字将是一个简单的“SELECT COUNT(*) FROM table”查询。我还没有进行基准测试,然后我会知道哪个是更好的解决方案,我想在我做测试之前听听你们的想法(因为时间总是not quite on my side,因为滚石可能会唱歌:)),但看起来像我最终将不得不这样做。
  • 一定有人已经完成了这些基准测试。有人可以找到链接或发布结果吗?

标签: sql database performance file-io


【解决方案1】:

如果做得好,缓存总是更快。

这取决于从文件中存储和检索数据需要多长时间以及对数据库的请求需要多长时间。

如果获取数字的数据库查询需要很长时间,那么缓存可能是个好主意,因为数据很小。

如果您要在包含大量缓存数据(似乎并非如此)的文件中进行搜索(例如顺序),则需要很长时间。

磁盘 I/O 可能比数据库 I/O 慢(这不太可能,除非它是本地数据库)。

底线 - 基准测试。

对于您的场景,缓存可能是一个好主意,但如果它对于所有用户来说只是一个 3 位数字,那么我会尝试将其粘贴在 RAM 中而不是文件中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-10
    • 1970-01-01
    • 2019-05-15
    • 1970-01-01
    • 1970-01-01
    • 2015-05-06
    • 1970-01-01
    相关资源
    最近更新 更多