我所说的并行是指将单个(分析)查询的工作负载分配给多个线程甚至副本。
我看到OSS Postgres从9.6开始就支持它们:https://www.postgresql.org/docs/9.6/static/parallel-plans.html
AWS Aurora已经添加了预览版,但仅限于MySQL版本:https://aws.amazon.com/about-aws/whats-new/2018/02/amazon-aurora-parallel-query-is-available-for-preview/
但是普通的AWS RDS(不是Aurora)确实支持它们,因为它有Postgres 9.6:
https://aws.amazon.com/blogs/database/performing-parallel-queries-and-phrase-searching-with-amazon-rds-for-postgresql-9-6-1/
我推断AWS Aurora Postgres不支持并行计划是正确的吗?
如果是这样,这是否意味着对于分析查询,普通RDS Postgres可能比Aurora的性能更好?
对Aurora Postgres查询并行性的未来支持有什么了解吗?
非常感谢!

最佳答案

一些解释:
postgres9.6+中的“并行计划”将实现您想要的功能:通过启动并行执行进程来加速单个查询。
Aurora的MySQL“并行查询”是完全不同的,尽管它也会产生您想要的结果。
Aurora(用于MySQL和postgres)有一个特殊的分布式存储层,它保留6个冗余副本,可用于读取副本和故障恢复。”parallel query“利用这个存储层(包括存储和相关的cpu来管理存储)来执行一些查询计算,卸载DB VM。
例如,筛选出与查询无关的行和列可以下推到存储层,而不是将所有数据读回VM并在那里丢弃它们。
总而言之:
postgres9.6+中的“并行计划”在虚拟机内部创建并行执行进程
Aurora中的“并行查询”将计算推送到存储层,从而卸载VM。
您的问题解答:
对的
也许:看上面。取决于将数据过滤推到存储层所带来的好处。
根据AWS博客,postgres的“并行查询”正在开发中:
“我们正在启动对MySQL5.6的支持,并正在研究对MySQL5.7和PostgreSQL的支持。”
https://aws.amazon.com/blogs/aws/new-parallel-query-for-amazon-aurora/
我认为对postgres进行一些“重大”的分析提升对于在事务性postgres系统上支持“实时操作分析”是必要的9.6+中的“平行计划”是一个开始。Aurora“并行查询”是另一种不同的方法。可能还有其他方法可以加快对postgres的分析。。。我想在AWS之外的多个云上看到这样的解决方案:Azure、GCP。
我已提交对Azure的请求-如果您同意,请在此处进行升级投票:
https://feedback.azure.com/forums/597976-azure-database-for-postgresql/suggestions/35794984-transactional-db-with-analytics

关于postgresql - AWS Aurora Postgres中的并行计划/查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52061609/

10-11 07:16