sql - 将小数据写入文件并从中读取或查询数据库

标签 sql database performance file-io

我有一种情况,我必须查询数据库以获取一些对所有用户都相同且每天更改的数据,所以我想我可以创建一个文件来保存这些数据(每天一次)和然后每次用户访问我的网站时从该文件加载它。

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

最佳答案

如果操作得当,缓存总是更快。

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

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

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

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

底线 - 基准。

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

关于sql - 将小数据写入文件并从中读取或查询数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14851653/

相关文章:

c++ - 在 C++ 中,在 for 循环之外使用 "if"还是在 for 循环中使用 "if"效率更高

c# - 为什么这个查询会引发 "SQL statement is nested too deeply"?

mysql - 挑战按 MAX 进行的 LEFT OUTER JOIN 查询分组

mysql - 通过模型设计避免条件连接

database - LINQ RefreshMode 是如何工作的?

php - 带有分页、不同值的 mongo + PHP 的性能问题

sql - 为什么显示的 sed 命令行显示 "extra characters after command"错误?

SQL - 查找给定大小的连续条目

sql - 在查询 Oracle 12.1 中的 WITH 子句中使用 CURSOR 表达式

mysql - 使用 filesort 按 MySQL 中的日期时间列排序