我有一种情况,我必须在数据库中查询一些数据,这些数据对于所有用户都是相同的,并且每天都在进行更改,所以我想我可以创建一个文件来保存这些数据(每天一次)和然后每次用户访问我的网站时从该文件加载它。
现在,我知道这是一种常见做法(缓存),当来自数据库的请求很大但我要写入文件的数据是一个简单的3位数时,所以我的问题是这仍然是更快还是仅仅是一种矫枉过正,我应该坚持使用数据库查询?
答案 0 :(得分:1)
如果做得好,缓存总是更快。
这取决于存储和检索文件中的数据需要多长时间以及对数据库的请求需要多长时间。
如果获取数字的数据库查询需要很长时间,那么缓存可能是一个好主意,因为数据很小。
如果您要在包含大量缓存数据的文件中进行搜索(例如顺序)(这似乎不是这种情况),则需要很长时间。
磁盘I / O可能比数据库I / O慢(这是不太可能的,除非它是本地数据库)。
底线 - 基准。
对于您的场景,缓存可能是一个好主意,但如果它只是所有用户的一个3位数字,那么我只是尝试将其粘贴在RAM而不是文件中。