我有一个要缓存的页面,该页面显示最近评论列表和最近帖子列表(均从数据库中获取)
我计划在我的 HTTP Headers
中使用 Last-Modified
来实现缓存,方法是将 Last-Modified
设置为最新的 updatedat
来 self 的数据库的时间戳字段
要获取最新的修改时间,将使用诸如
的查询SELECT updatedat from comments, articles ORDER BY updateat DESC LIMIT 1
有效率吗?
然后我会将请求的 If-Modified-Since
与来自 DB 的(updatedat 字段)
的最新时间戳进行比较,以确定重新加载数据的天气或只是将 header 类型设置为 Not Modified (304)
最佳答案
在有问题的列上放置索引 (updatedat),然后使用 MAX 函数。
SELECT MAX(joint.updatedat) FROM (
SELECT MAX(a.updatedat) updatedat FROM articles a
UNION
SELECT MAX(c.updatedat) updatedat FROM comments c
) joint;
确保查询的列在两个表中都有索引。
关于通过表进行 HTTP 缓存 最近修改时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13441082/