我正在尝试使用安全 SSL 连接连接到托管在 AWS RDS 上的 PG 实例。我在哪里将公钥存储在 Windows 上以便它自动应用于连接?
请注意,当我打开 PGAdmin 时,它只允许我指定 .crt 和 .key 文件。有没有办法将它指向 .pem 文件?
我下载了这里引用的公钥:http : //docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts.General.SSL
在 Linux 上,将此密钥放入默认的 OpenSSL 目录是一件简单的事情,postgres 似乎可以检测到它并自行处理其余部分。
在 Windows 上,我还没有弄清楚如何执行此操作或将 .pem 文件存储在何处或如何将 PGAdmin 指向 .pem 文件。
我正在使用 Amazon RDS 上托管的 Postgres 数据仓库。当尝试从同一数据库中的另一个表更新事实表的一列(2500 万行)时,查询需要几天时间才能运行。为什么会发生这种情况,我该如何提高这种性能?我知道 PG 是为 OLTP 而设计的,而不是 OLAP,但是在这个表上选择查询性能通常相当不错。
有问题的查询如下所示:
UPDATE a
SET a.value = b.value
FROM b
WHERE a.id = b.id
Run Code Online (Sandbox Code Playgroud)
b
是不同架构中的临时表,但与a
. 两个表在 上都有主键id
。value
列上没有索引或约束。有依赖于表a
但没有外键的视图
我在 RDS 上使用 PG 9.5。具有 256 GB 存储空间的通用型 (SSD),因此在用尽我们最初的突发 IOPS 后,我的 IOPS 应该会略低于 800。
IOPS 节流真的是这里的问题吗?在观看查询运行时,我看到写入性能约为 400 IOPS,读取性能类似。25,000,000 行 / 400 IOPS = 17 小时,但此查询的运行时间比 24 小时长得多(大约 30 小时后取消以尝试进行调整)。同一个表上还有其他一些定期更新流量,但是当我看到这个查询花费了多长时间时,我在大约 20 小时时停止了它。
我想知道我的一般更新方法是否错误,或者是否有使用 postgres 操作数据仓库(OLAP 工作负载)的一般建议。我能否通过放弃 RDS 并在 EC2 上运行 PG 来获得更好的性能?
更新:受回复和评论的启发,我对 45k …
postgresql performance data-warehouse update amazon-rds postgresql-performance