小编HaD*_*Min的帖子

从源安装 PostgreSQL - “copy_file_range”错误的类型冲突

我目前正在尝试从源代码安装 Postgresql 的早期版本,但是在解压缩 tarball 并运行“make”命令创建二进制文件后,我遇到了此错误:

\n\n

copy_fetch.c:161:1: error: conflicting types for \xe2\x80\x98copy_file_range\xe2\x80\x99\n copy_file_range(const char *path, off_t begin, off_t end, bool trunc)\n ^~~~~~~~~~~~~~~\nIn file included from copy_fetch.c:16:0:\n/usr/include/unistd.h:1110:9: note: previous declaration of \xe2\x80\x98copy_file_range\xe2\x80\x99 was here

\n\n

我可以在 Postgres 留言板上看到有关重命名 copy_file_range() 的讨论: https ://www.postgresql.org/message-id/E1eWpqd-00067Q-2b%40gemulon.postgresql.org

\n\n

有谁知道解决这个问题需要采取哪些步骤?我尝试安装的 Postgres 版本是 9.5。

\n

linux postgresql ubuntu postgresql-9.5

5
推荐指数
1
解决办法
2886
查看次数

经常更新的最佳缓存策略数据(Redis/Memcached vs Nginx/Varnish vs Materialized view)

我目前正在运行一个 AWS EC2 Ubuntu 服务器,它从 Postgres RDS 数据库实例中获取数据。在特定页面的视图函数中使用的 SQL 查询之一有很多连接并且运行速度很慢。我试图减少查询并删除一些可能有点不必要的连接,但它仍然需要比预期更长的加载时间(至少 6 秒)。我目前正在研究潜在的缓存策略,以帮助加快页面服务的速度。

我曾考虑使用物化视图,但是原始视图函数获取的数据平均每 30 秒更新一次,我担心实现触发器或常规 cron 作业来刷新 MatView 这通常会对其造成影响数据库,并且可能不是定期更新和更改数据的最佳策略(除非有人可以建议另一种更新 MatView 中行的方法,该方法不涉及运行与原始查询非常相似的查询)

到目前为止,我已经在 Elasticache 实例上测试了 Redis,并对其工作方式印象深刻,但是我也被推荐查看 Nginx 和 Varnish 缓存策略。

我有点困惑哪种缓存策略最适合这种情况。与 EC2 实例上的 Nginx/Varnish 实现相比,Elasticache 实例上的 Redis/Memcached 是否有点过于重量级?尝试缓存在 Nginx 缓存上经常更改的数据是否被认为是一个坏主意?

postgresql nginx materialized-views amazon-web-services redis

3
推荐指数
1
解决办法
2528
查看次数