通过表进行 HTTP 缓存 最近修改时间

标签 http postgresql caching

我有一个要缓存的页面,该页面显示最近评论列表和最近帖子列表(均从数据库中获取)

我计划在我的 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/

相关文章:

c# - 在 C# 中使用 WebClient.DownloadString 发送 POST

mysql - 名称-值对模型 对于仅配置数据

android - 如何使用已安装的 HttpResponseCache

java - 我可以在没有 ORM 的情况下将 XML 导入 Postgres 数据库吗?

.net - 如何清除客户端 .Net SSL session 缓存

java - infinispan:集群实例不共享缓存

c# - Coinigy V2 API 授权问题

java - HttpClient - 从一个 InputStream 写入多个 POST 请求

http - 处理系统命令和 http 请求的套接字服务器

带有导致歧义的更新和选择语句的 PostgreSQL 返回表