Astor Data、Greenplum 和 GridSQL 都允许大规模并行处理 SQL 查询。它们也都是围绕 PostgreSQL 技术构建的。这仅仅是因为许可问题还是有其他原因?对我来说,这似乎是 MyISAM,不兼容 ACID,因此不会遇到与 MVCC 相同的问题(如在这里看到的),因为 PostgreSQL 更适合构建高性能数据仓库。据我所知,毕竟 OLAP 加载不需要事务。
Astor Data、Greenplum 和 GridSQL 都允许大规模并行处理 SQL 查询。它们也都是围绕 PostgreSQL 技术构建的。这仅仅是因为许可问题还是有其他原因?对我来说,这似乎是 MyISAM,不兼容 ACID,因此不会遇到与 MVCC 相同的问题(如在这里看到的),因为 PostgreSQL 更适合构建高性能数据仓库。据我所知,毕竟 OLAP 加载不需要事务。
这主要是许可证问题。这些开发最终对代码进行了大量修补,因此如果您要处理 MySQL,您要么必须开源代码,要么在您的业务生命周期中受 MySQL 公司所有者的摆布。MySQL 的一些产品通过将它们的工作实现为存储引擎来解决这个问题,但这并不能提供它们所需的所有灵活性,而且它们最终总是会修补 MySQL 核心。
我可以看到两个原因:
1)历史上,PostgreSQL 有更好的查询计划器和统计分析器。现在可能不是这样,但几年前 PostgreSQL 在复杂查询(即 OLAP 查询)上比 MySQL 好得多。
2) PostgreSQL 有更好的函数/触发器/等编程支持。
正如 Peter Eisentraut 正确指出的那样,首先这是一个许可问题。Postgres 是根据类似 BSD 的协议获得许可的,这使得它本质上是“对所有人免费”,只要您在衍生作品中归功于原始开发人员。
MVCC 与锁定调度程序的争论已经成为在线上多次“圣战”的主题。关于各种存储引擎的优点的争论同样有争议。
对于为分析工作负载构建的 MPP RDBMS,恕我直言,不同的行主要(又名行存储)存储引擎的优点在很大程度上无关紧要,原因有两个:
我在 MySQL 上构建了一个 MPP 系统,我放弃了该系统有两个原因:
1) 是甲骨文
2) 缺乏散列连接——嵌套循环和索引连接不能扩展到 MPP 系统所需的级别——同样是因为 Oracle 在获得所有权后禁止在 5.x 代码行中承诺提供散列连接。
MPP 大数据系统必须具有非几何复杂性的连接。- 线性或对数线性复杂性连接必须是真正大数据系统的强烈偏好。
我在新的 DeepCloud MPP 系统中部署了 Actian vectorwise,同时在用户级别保持了 drizzle/MySQL 兼容性。
需要快速大数据分析的用户可以从http://www.deepcloud.co下载 DeepCloud