关于Greenplum为什么基于PostgreSQL而不是MySQL?

Greenplum选择PostgreSQL而不是MySQL,其原因主要有以下几点:

更强的分析能力

PG有非常强大的SQL支持能力和非常丰富的统计函数和统计语法支持,除对ANSI SQL完全支持外,还支持比如分析函数(SQL2003 OLAP window函数),还可以用多种语言来写存储过程,对于MADLIB、R的支持也很好。
这一点上MySQL就差很多远,很多分析功能都不支持,GP作为MPP数据分析平台,这些功能都必不可少的。

复杂查询能力的支持

MySQL查询优化器对于子查询、复杂查询如多表关联、外关联的支持较弱,特别是在关联时对于三大JOIN技术:hash join、merge join、nestloop join的支持,MySQL只支持最后一种nestloop join(未来会支持hash join),而多个大表关联分析时hash join是必备的利器,缺少这些关联功能非常致命,难以在OLAP领域充当大任。

强大的扩展性能力

PostgreSQL天生就是为扩展而生的,可以在PG中用Python、C、Perl、TCL、PLSQL等语言来扩展功能,开发新的功能模块、新的数据类型、新的索引类型等非常方便,只要按照API接口开发,无需对PG重新编译。
PG中contrib目录下的各个第三方模块,在GP中的postgis空间数据库、R、MADLIB、pycrypto各类加密算法、gptext全文检索都是通过这种方式实现扩展的。

更好的OLAP功能

在诸如ACID事务处理、数据强一致保证、数据类型支持、独特的MVCC带来高效数据更新能力等还有很多方面,PG似乎在这些OLAP功能上都比MySQL更甚一筹。

更友好的开源协议

PostgreSQL许可是仿照BSD许可模式的,没有被大公司控制,社区比较纯洁,版本和路线控制非常好,基于PostgreSQL可让用户拥有更多自主性。反观MySQL的社区现状和众多分支(如MariaDB),确实有些混乱。

你可能感兴趣的:(Postgresql,Greenplum,postgresql,mysql,数据库)