I am currently caching dynamically generated PHP pages by saving them to a database with an expiry time field. If the page is requested again, the program checks for a unexpired cached version of the page to serve up, and only regenerates the page if it can’t find one.
This works well – but would it put less load on the server to save the cached pages as files instead saving to the database? I could use a naming convention in the files to handle the expiry time.
If it is faster and less server taxing to read/write from a file instead of a database, I’ll switch to that. Does anyone know which is faster / best practice?
The fastest is to use static files, because you can then issue the cache without even starting PHP (using RewriteRules). It won’t scale properly if you’ve multiple front ends, however.
The next best thing is to store it in memory, using Memcache for instance.
The least preferable is to use SQL. If you stick with it, at least do your hard-drive a favor by using the Memory storage engine or equivalent (e.g. an unlogged table that lives in a tablespace stored on a RAM disk, if you’re using PostgreSQL).