2013-02-13 117 views
2

我有一种情况,我必须查询数据库中的所有用户和每天更改的相同数据,所以我想我可以创建一个文件我会保存这些数据(每天一次),然后每次用户访问我的网站时从该文件加载它。将小数据写入文件并从中读取或查询数据库

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

+0

你有数百万用户吗?获得这个数字是否昂贵?你有基准吗? – 2013-02-13 10:43:46

+1

@MitchWheat:我有大约50k的用户。获取数字将是一个简单的“SELECT COUNT(*)FROM table”查询。我没有对原因进行基准测试,然后我会知道哪一个是更好的解决方案,我想在测试之前听听你们的想法(因为时间总是[不太在我身边](http://www.youtube .com/watch?v = rIE2GAqnFGw)滚动的石头可能会唱歌:)),但似乎我将不得不在最后。 – Nikola 2013-02-13 11:38:43

+0

有人必须已经完成这些基准。有人可以找到链接或张贴结果。 – mastaBlasta 2013-03-20 14:52:18

回答

1

当正确完成时,缓存总是更快。

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

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

如果您要在包含大量缓存数据(似乎不是这种情况)的文件中执行搜索(例如顺序),则需要很长时间。

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

底线 - 基准。

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

相关问题