首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么这么多基于PostgreSQL而不是MySQL的MPP解决方案?

为什么这么多基于PostgreSQL而不是MySQL的MPP解决方案?
EN

Database Administration用户
提问于 2011-02-06 13:46:35
回答 4查看 6.5K关注 0票数 8

Astor数据、格林梅和GridSQL都允许大规模并行处理SQL查询。它们也都是围绕着PostgreSQL技术构建的。这是因为发牌问题,还是因为其他原因?在我看来,它似乎是MyISAM,不符合标准,因此在MVCC中也不会遇到同样的问题(如这里),因为PostgreSQL更适合构建高性能的数据仓库。毕竟,据我所知,OLAP负载不需要事务。

EN

回答 4

Database Administration用户

回答已采纳

发布于 2011-02-07 00:29:51

这主要是许可证问题。这些开发最终会严重地修补代码,所以如果您要处理MySQL,您要么必须开源您的代码,要么就得听命于MySQL的公司所有者来维持您的业务生涯。一些为MySQL提供的服务通过将它们的工作实现为存储引擎来解决这一问题,但这并不能提供它们所需的全部灵活性,而且它们最终也总是修补MySQL核心。

票数 14
EN

Database Administration用户

发布于 2011-02-06 18:46:56

我可以看出两个原因:

1)从历史上看,PostgreSQL具有较好的查询计划器和统计分析器。现在可能不是这样,但几年前,在复杂查询(即OLAP查询)上,PostgreSQL比MySQL要好得多。

2) PostgreSQL具有更好的功能/触发器/etc编程支持。

票数 11
EN

Database Administration用户

发布于 2013-04-02 16:03:34

正如正确指出的,这首先是一个许可问题。Postgres是根据类似BSD的协议获得许可的,这使得它本质上是“人人免费”,只要你在你的衍生产品中归功于最初的开发者。

MVCC与锁定调度器的争论已经在网上引起了不止几场“圣战”。关于各种储存引擎优点的辩论也同样有争议。

对于为分析工作负载构建的MPP RDBMS,不同的主要存储引擎(也称为行存储)的优点在很大程度上与IMHO无关,原因有二:

  1. 虽然存储引擎的特性对于处理OLTP类型的工作负载中的ACID事务很重要,但是在典型的数据仓库环境中,您只需要支持一种类型的“事务”--批处理负载。理想情况下,应该完全成功或完全失败的是批处理负载。
  2. 基于列存储存储引擎的分析数据库在许多情况下将优于任何行存储实现。Vertica从一开始就是一家专栏商店,Teradata最近在他们的产品中增加了列商店功能。
票数 6
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/1099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档