首页 > 解决方案 > Amazon RDS 实例类型 (PostgreSQL) 之间的实际差异

问题描述

我对设置一般的 PostgreSQL 数据库和 AWS 比较陌生。

我试图弄清楚Amazon RDS Instance Types之间的实际区别是什么。关于我的组织和用例的一些上下文:

我现在开始使用免费层db.t2.micro只是为了获得一些经验、开发和测试我需要的东西。但是,我很难理解这与其他实例相比如何。我们的团队现在也非常注重预算,所以我试图在提倡升级之前确定这一点。

我正在尝试执行的示例操作

  1. 从 CSV 加载表:我们在磁盘上有很多 CSV,我将它们加载到 PostgreSQL 数据库中。我现在刚刚测试了一个,创建了一个表,然后将 CSV 加载到\copy一个 11 GB 文件(35,401,551 行和 40 列)的表中(使用)大约需要 27 分钟。升级实例会对此有所帮助吗?如果是这样,我不确定我想升级到什么?
  2. 该表中的 Aselect count(*)大约需要 15 分钟(第一次运行;第二次运行大约需要 3 分钟,可能是因为它正在缓存统计信息?3 分钟对我来说似乎仍然很慢。)。同样,不确定升级实例是否会对此有所帮助?我还应该注意,我没有添加主键或索引。那么可能有其他方法可以在不升级实例的情况下优化性能吗?例如,分区可能会有所帮助:https ://www.postgresql.org/docs/10/ddl-partitioning.html 。该表有一个state列,该列通常是用户使用的第一个过滤器之一,因为用户通常只想查看一个或一组特定状态。
    1. 一个简单的查询分组:select ColA, count(*) group by ColA大约需要 2.5 分钟

编辑 只是注意到我发现的一些其他有用的资源:

  1. https://www.apptio.com/blog/ec2-m5-vs-t3/在 m5 与 t3 之间进行选择

标签: postgresqlamazon-web-servicesamazon-rds

解决方案


主要是 RDS 中的实例类型,主要区别如下:

  • 有效内存
  • 可用 CPU
  • 最大网络吞吐量
  • 可突发与不可突发(T实例系列使用可突发积分,一旦耗尽,您的 CPU 就会受到限制)。

当您使用 aT2.micro时,您只有一个可用的 CPU。一旦积分用尽,您的 CPU 上限也将上限为 20%,这将限制您的能力。

我还要指出,如果您能够在 AWS 平台上投入更多资金,那么有一个专门用于分析的数据仓库解决方案是Redshift,这可能会表现得更好,但成本会更高,它也是来自 Postgres 的分支。

如果您希望在 RDS 中坚持使用 Postgres,您还应该考虑Aurora Postgres,它通常提供 2-3 倍于 RDS 上的常规 Postgres 的性能。


推荐阅读