在收到@Andrew Regan的回答后,我编辑了我的问题及其解释。
我想向数百万人提供HTML数据。我开始知道 - 它是通过缓存完成的。
我知道HTML作为文件,现在我还读到HTML页面存储在数据库中以供服务。
因此我的问题是,以下哪个缓存会更快
- 在不同文件夹和子文件夹中缓存HTML文件
或
- 在数据库中缓存HTML数据。
即使这个实验只在单个文件/表记录上完成,哪种方法会更快? (毫无疑问,单个文件或记录的结果将以纳秒为单位,但是,哪个缓存会更快发生?例如,任何一个过程将花费0.000000001秒,另一个过程将花费0.000000002秒。
答案 0 :(得分:0)
您还没有告诉我们您的应用程序架构或预期流量,或者您是否考虑过解决问题的现有框架。所以这将是一个非常高级的观点。
答案是缓存。
对于静态内容,您不应该 将最终用户暴露给文件系统或数据库的性能。不管你怎么也不想。
如果您只是在一台服务器上提供固定,不变的静态内容,那么最有效的选择就是在启动时简单地将整批数据读入缓存(理想情况下保存在RAM中,而不是磁盘中)。从那里开始,没有任何额外的负载或提取。 (更好的是,你使用proven cache outside of your network。)
最终用户应该非常快。就机器性能而言,无论是从文件系统还是从数据库中提取缓存,都不应该产生很大的不同,尽管磁盘可能更容易使用。
如果您愿意,或者您有更改内容,可以将数据延迟加载到缓存中。如果你从磁盘或数据库加载它仍然真的很重要,只要你足够积极地缓存。设置尽可能长的TTL(生命周期),以避免不必要的重新加载。