通过最新修改时间表进行HTTP缓存
我有一个我希望缓存的页面,该页面显示最近评论的列表和最近帖子的列表(都是从DB获取的) 我计划在my通过最新修改时间表进行HTTP缓存,http,postgresql,caching,Http,Postgresql,Caching,我有一个我希望缓存的页面,该页面显示最近评论的列表和最近帖子的列表(都是从DB获取的) 我计划在myHTTP头中使用Last Modified,通过将Last Modified设置为my DB中最新的updatedat时间戳字段来实现缓存 要获取最新修改的时间,请使用以下查询 SELECT updatedat from comments, articles ORDER BY updateat DESC LIMIT 1 有效率吗 然后,我会将请求的(如果自以来修改过)与DB(updatedat字
HTTP头中使用Last Modified
,通过将Last Modified
设置为my DB中最新的updatedat
时间戳字段来实现缓存
要获取最新修改的时间,请使用以下查询
SELECT updatedat from comments, articles ORDER BY updateat DESC LIMIT 1
有效率吗
然后,我会将请求的(如果自
以来修改过)与DB(updatedat字段)
中的最新时间戳进行比较,以确定是否需要重新加载数据,或者只是将头类型设置为未修改(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;
确保查询的列在两个表中都有索引。查询生成两个表的笛卡尔乘积作为中间结果;你想问什么?你想知道两个表中的最新日期吗?是的,我想得到最新的日期时间(两个表中最大的一个)。注释表包含文章和页面的注释(每个页面都有一个自定义url,从一篇文章中脱颖而出)。你不能像这样从两个表中获得最大值,您需要分别确定每个结果中的最大值,然后选择两个结果中的较大值。