为什么在我的案例中 rds 的执行速度比 redshift 快?
Why is rds performing faster than redshift in my case?
我有一个 RDS 实例:db.t2.xlarge(4 个 vCPU,16 GiB 内存)(max_parallel_workers_per_gather=2)
还有另一个 Redshift 实例:dc2.large(2 个 vCPU,15 GiB 内存)(2 个节点)
我已经加载了相同的数据。我尝试了不同类型的查询,但我的 RDS 总是在更短的时间内运行查询。
示例:
- 我有一个 table 叫 'az_product_questions'
- 它有两列
product_id
(int) 和 question_id
(int)
- 我插入了 1,258,559 行。
我正在尝试的查询如下:
SELECT
product_id,
COUNT(*)
FROM az_product_questions
GROUP BY product_id
ORDER BY product_id ASC;
- 在 RDS 中:我没有添加任何索引。
- 在 Redshift 中:product_id 是
distkey
和 sortkey
即将上演:
- 在 RDS 上:平均。 5 秒
- 在 Redshift 上:平均。 6.5秒
我是否在错误的用例中或以错误的方式尝试将 Redshift 用于较小的数据库?还是正常?
一个普通的数据库在 table 中有 百万行 时开始变慢。 Amazon Redshift 可以处理 table 秒 十亿行 。
对于这个特定的用例,普通的数据库就可以正常工作。但是,当您添加更多行和更多列时,像 Amazon Redshift 这样的列式数据库会显示出更好的性能。
因此,请坚持使用对您而言性能良好的数据库,然后如果您有更高的分析需求,请考虑使用 Redshift。请注意,Redshift 非常适合报告,但不应与执行大量插入和更新的应用程序一起使用。
我有一个 RDS 实例:db.t2.xlarge(4 个 vCPU,16 GiB 内存)(max_parallel_workers_per_gather=2)
还有另一个 Redshift 实例:dc2.large(2 个 vCPU,15 GiB 内存)(2 个节点)
我已经加载了相同的数据。我尝试了不同类型的查询,但我的 RDS 总是在更短的时间内运行查询。
示例:
- 我有一个 table 叫 'az_product_questions'
- 它有两列
product_id
(int) 和question_id
(int) - 我插入了 1,258,559 行。
我正在尝试的查询如下:
SELECT
product_id,
COUNT(*)
FROM az_product_questions
GROUP BY product_id
ORDER BY product_id ASC;
- 在 RDS 中:我没有添加任何索引。
- 在 Redshift 中:product_id 是
distkey
和sortkey
即将上演:
- 在 RDS 上:平均。 5 秒
- 在 Redshift 上:平均。 6.5秒
我是否在错误的用例中或以错误的方式尝试将 Redshift 用于较小的数据库?还是正常?
一个普通的数据库在 table 中有 百万行 时开始变慢。 Amazon Redshift 可以处理 table 秒 十亿行 。
对于这个特定的用例,普通的数据库就可以正常工作。但是,当您添加更多行和更多列时,像 Amazon Redshift 这样的列式数据库会显示出更好的性能。
因此,请坚持使用对您而言性能良好的数据库,然后如果您有更高的分析需求,请考虑使用 Redshift。请注意,Redshift 非常适合报告,但不应与执行大量插入和更新的应用程序一起使用。