开源数据库中有一堆冤家,我想大家都知道,那就是MySQL与Postgre SQL。两个派系的恩怨情仇从何而来,今天我们将从非技术的角度来进行分析。 本文仅代表个人观点,如有不同意见欢迎交流。
说明:本文主要的关注点,是MySQL与PostgreSQL的非技术比较。
简单评价
MySQL流行较多,PostgreSQL功能更全面。其主要原因是,MySQL很早的时候,就支持主从复制,在互联网起步(2000年后第一次互联网大潮)的时候,被广泛使用。PostgreSQL到2010年左右才首次支持主从复制,无法作为互联网类应用的核心,错过了较好的发展机会,在非互联网领域,由于在商业支持以及数据库特性支持方面,无法与商业数据库如Oracle等较量,PostgreSQL始终未能形成潮流,到Greenplum出现,才在OLAP数据仓库领域得到广泛使用。
核心特点
MySQL
目前最流行的开源数据库。 由于其部署方便,运维简单,被广泛用于互联网的各个领域,目前随着整体IT架构的变更,传统的金融,电信业务,也开始逐渐从Oracle向MySQL迁移。 主打架构为主从异步复制,在5.5开始,支持半同步复制,5.7开始,支持Group Replication复制。
PostgreSQL
开源的关系数据库里面,功能最丰富的数据库。 支持到SQL标准2008(MySQL只支持到SQL 89以及SQL92的一部分),以及SQL OLAP 2003标准(MySQL基本没有支持)。被广泛用于数据仓库类应用,基于其发展出来的Greenplum作为分布式并行计算数据库架构被广泛使用。 数据库的主从复制,支持异步,日志同步,写同步等多种级别。
发展历史
MySQL
PostgreSQL
当前主流版本
MYSQL
Oracle官方承诺支持新版本的开发,目前由Oracle官方的MySQL开发团队支持,网站站点为https://www.mysql.com/。
MySQL商业版相比较开源版本,主要是对安全,审计等方面的增强,如果需要实用,需要支付授权费用。
目前最活跃的第三方发行版本,由商业公司Percona公司支持,目前最大的开源数据库社区会议之一Poercona Live就是由Percona公司举办,主要是对MySQL的官方开源版本,进行功能性以及管理性进行强化,网站https://www.percona.com/。
为了避免Oracle公司拥有MySQL后,停滞对MySQL的开发,MySQL核心研发工程师Monty与其开发团队在MySQL 5.5版本后,独立出MariaDB分支,并且随后变更版本号为10.x系列版本,与MySQL官方不再同步代码与特性。其主要在功能性上相比较官方版本做了很多的增强,相当多无法进入官方分支的社区自发性功能性能方面的补丁(来自google,facebook,阿里巴巴等)被加入到这一分支。
国内包括阿里巴巴,腾讯在内的数据库内核团队,都与MariaDB有较为深入的合作,其中来自阿里巴巴的彭立勋(MySQL ACE)目前是MariaDB 复制功能部分的负责人。
目前,包括readhat,ubuntu在内的多个主流linux发行版本,内置的数据库版本均为MariaDB,而非Oracle公司的MYSQL版本。社区版本 http://mariadb.org/
AliSQL
来源为阿里巴巴阿里云RDS团队,对复制,安全等多方面都有增强,其主要版本基于MySQL 5.6开发,内置TokuDB等第三方存储引擎的支持。
InnoSQL
来源为网易杭州研究院,主要作者为姜承尧(MySQL ACE),对MySQL复制等方面有很多的增强实现。
OneSQL
来源为平民软件的楼方鑫(Oracle ACE),对数据库在高并发场景下的处理进行了很多优化。
PostgeSQL
PostgeSQL目前主流为社区支持的官方版本,网站:https://www.postgresql.org/。
商业支持来自EnterpriseDB公司,包含一个增强了很多功能的商业版本,https://www.enterprisedb.com/
Pivotal提供了基于PostgeSQL的MPP数据库Greenplum的支持,https://pivotal.io/
当前国内主要社区
MYSQL
China MySQL User Group(简称CMUG)是中国MySQL爱好者自发形成的一个组织,为IOUC官方注册的社区组织。
其主要成员为MySQL ACE以及其他MySQL社区有较大影响能力的人,主席周彦伟为MySQL ACE,去哪儿MYSQL经理,社区主要成员基本上都是来自各大互联网公司(阿里,腾讯,去哪,新浪等)的MySQL核心专家,http://acmug.com/acmug-member
有定时组织的全国巡游会议,以及社区群落。
PostgreSQL
来源于国内PostgreSQL社区主导的组织,核心成员为PostgreSQL的国内主要领袖,主席萧少聪目前为阿里云核心数据库专家。
当前主要使用范围
MySQL
社交新闻类
包括腾讯(含微信),新浪,今日头条,陌陌等在内的已知的国内社交领域公司,数据库均是使用MySQL。
电商类
电商领域,阿里巴巴从2009年前后开始,逐渐替换原先的Oracle(IOE)架构为MySQL开源架构,并在随后几年,完全替换所有Oracle架构。
京东最早为SQL Server架构,后续由于性能问题,经历短暂的Oracle时期后,目前主体核心均为MySQL。
苏宁易购,早期为IBM DB2架构,后续逐渐替换为MySQL架构。
互联网金融类
借贷宝:核心使用MySQL数据库,外围部分依赖系统使用Oracle。
游戏娱乐类
腾讯游戏:主体使用MySQL数据库。
PostgreSQL
由于PostgreSQL的第三方版本Greenplum在数据仓库的大量应用,目前Greenplum已经是实际的MPP数据库标准。
德邦快递:数百TB的Greenplum单个集群。
咪咕游戏:数百TB的Greenplum单个集群。
由于对SQL特性的完整支持,对业务开发以及迁移相对友好,有很多地方采用PostgreSQL作为业务系统。
浙江移动:采用PostgreSQL-XC 替换原先的Oracle架构。