我目前正在缓存动态生成的PHP页面,方法是将它们保存到具有到期时间字段的数据库中。如果再次请求该页面,程序将检查要提供的页面的未过期缓存版本,并且只有在找不到该页面时才重新生成该页面。
这很好用 - 但是它会减少服务器上的负载以将缓存的页面保存为文件而不是保存到数据库中吗?我可以在文件中使用命名约定来处理到期时间。
如果从文件而不是数据库读取/写入更快,更少服务器负担,我将切换到那。有谁知道哪种更快/最佳做法?
答案 0 :(得分:6)
如果从文件而不是数据库读取/写入更快,更少服务器负担,我将切换到那。有谁知道哪种更快/最佳做法?
最快的是使用静态文件,因为您甚至可以在不启动PHP(使用RewriteRules)的情况下发出缓存。但是,如果你有多个前端,它将无法正确缩放。
下一个最好的事情是将它存储在内存中,例如使用Memcache。
最不可取的是使用SQL。如果坚持使用它,至少可以通过使用内存存储引擎或等效内容(例如,存储在RAM磁盘上的表空间中的未记录表,如果您正在使用PostgreSQL)来帮助您获得硬盘驱动器。
答案 1 :(得分:2)
两个选项都使用文件系统,因为(假设您使用的是没有MEMORY / HEAP表的MySQL)数据库记录仍然存储在文件中。
如果您在请求缓存数据时有活动数据库连接,我会坚持使用数据库。
答案 2 :(得分:0)
这是一些有趣的东西,我从来没有尝试过,但听过很多好话。您可以使用Google Spreadsheet API通过http请求充当数据库。这听起来(至少在理论上)就像它是这样一个问题的理想解决方案。不是你的问题的答案只是另一种选择。
答案 3 :(得分:0)