MySQL与Postgres大不同 优步选择了前者

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

在一百年前,人类的第一台计算机还没能诞生,黑纸白字是人们记录信息的唯一方式,档案馆是信息的集结地,数据分析还只能通过人工的分类,检索来完成。1951年Univac系统使用磁带和穿孔卡片作为数据存储,成为人类向大数据迈进的里程碑。

从文件系统发展到数据库系统,人们对于数据信息处理能力越来越强,出现了以做数据库发家的甲骨文公司(即IOE中的O:Oracle),也有很多种免费、开源的数据库供我们使用。在现实生活中,包括Facebook、优步等企业都选择了开源、免费的数据库。其中,MySQL与Postgres已经成为最受欢迎的两种免费数据库,他们之间有有什么异同呢?7月末,优步公司宣布将数据库从Postgres切换到MySQL,个中原因又是什么呢?

MySQL与Postgres大不同 优步选择了前者

从Postgres(PG

MySQL与Postgres大不同 优步选择了前者

MySQL(以上图片来自:eng.uber.com)

根据优步官方解释,此次更换数据库的原因是Postgres数据复制效率低下,Postgres更新已有行的效率低于MySQL,Postgres需要重写每一个行索引,而MySQL只更新改变的索引。也就是说,此次更换的原因并非孰优孰劣,MySQL与Postgres各有自己的特点。

MySQL与Postgres大不同 优步选择了前者

PostgreSQL

索引:PostgreSQL取决于存储引擎。MyISAM:BTREE,InnoDB:BTREE。同时PG可以使用函数和条件索引。相比之下,MySQL支持B-树、哈希、R-树和Gist索引。在索引的复制能力方面MySQL更优,这也成为优步更换数据库的重要原因。

一致性:数据的一致性是衡量一个数据库优劣的重点,PostgreSQL是完全支持ACID特性的,它对于数据库访问提供了强大的安全性 保证,充分利用了企业安全工具,如Kerberos与OpenSSL等。在MySQL中,开发人员可以将服务器设定为严格SQL模式才能达到目的,否则可能会产生不规范数据。

稳定性:PostgreSQL的稳定性极强,Innodb等引擎在崩溃、断电之类的灾难场景下抗打击能力有了长足进步,然而很多MySQL用户都遇到过Server级的数据库丢失的场景——mysql系统库是MyISAM的,相比之下,PG数据库这方面要好一些。当然,对于MySQL而言,不同的版本稳定性也不尽相同,MySQL官方网站会提供稳定版本下载,开发环境使用的MySQL版本应该和生产中的大版本一致,用户可选择最新的稳定版本。

MySQL与Postgres大不同 优步选择了前者

MySQL

应该说这两种数据库都是开源、免费并能运行在多个操作系统上的,无论是可扩展性、数据的一致性和可靠性都比较稳定。但二者在应用环境、场景和部分特性上不尽相同。二者没有完全意义上的好坏,从整个发展过程来讲,最初PostgreSQL的发展速度较慢,导致MySQL一度成为霸主,如今,双方各有优劣,都成为不同应用场景下的最优数据库。

自从MySQL被收购后,虽然仍保持开源的姿态,但实际上都有专业的工程师在码代码,发展也十分迅速,并出现了Standard、Enterprise、Classic、Cluster、Embedded与Community等多个版本,Twitter、Facebook与Wikipedia都是MySQL的忠实用户。PostgreSQL则一直标榜自己为最先进的开源数据库,同时它又比MySQL出现的早了九年,让它在教育和部分国外企业中备受欢迎,同时其数据一致性与完整性也是PostgreSQL的高优先级特性。

总的来说,MySQL更为灵活,PostgreSQL更为可靠,用户在选择时一定要慎重,毕竟切换数据库是一件费力且不讨好的事情。





====================================分割线================================


本文转自d1net(转载)

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6月前
|
JSON 关系型数据库 MySQL
全方位对比 Postgres 和 MySQL (2023 版)
根据 2023 年 Stack Overflow 调研,Postgres 已经取代 MySQL 成为最受敬仰和渴望的数据库。 随着 Postgres 的发展势头愈发强劲,在 Postgres 和 MySQL 之间做选择变得更难了。 如果看安装数量,MySQL 可能仍是全球最大的开源数据库。 Postgres 则自诩为全球最先进的开源关系型数据库。 因为需要与各种数据库及其衍生产品集成,Bytebase 和各种数据库密切合作,而托管 MySQL 和 Postgres 最大的云服务之一 Google Cloud SQL 也是 Bytebase 创始人的杰作之一。 我们对 Postg
205 0
|
存储 运维 Oracle
选择Percona Server、MariaDB还是MYSQL|学习笔记
快速学习选择Percona Server、MariaDB还是MYSQL
620 0
|
NoSQL 关系型数据库 MySQL
《PostgresChina2018_张启程_为什么我们抛弃MongoDB和MySQL,选择PgSQL》电子版地址
PostgresChina2018_张启程_为什么我们抛弃MongoDB和MySQL,选择PgSQL
87 0
《PostgresChina2018_张启程_为什么我们抛弃MongoDB和MySQL,选择PgSQL》电子版地址
|
SQL 存储 关系型数据库
MYSQL 索引成本计算,为什么MYSQL预判后选择了错误索引?
IO 成本: 即从磁盘把数据加载到内存的成本,默认情况下,读取数据页的 IO 成本是 1,MySQL 是以页的形式读取数据的,即当用到某个数据时,并不会只读取这个数据,而会把这个数据相邻的数据也一起读到内存中,这就是有名的程序局部性原理,所以 MySQL 每次会读取一整页,一页的成本就是 1。所以 IO 的成本主要和页的大小有关
219 0
|
存储 SQL JSON
不全?MySQL数据类型精讲,定点日期枚举文本字符串,json二进制,空间,选择建议,完整详细可收藏
不全?MySQL数据类型精讲,定点日期枚举文本字符串,json二进制,空间,选择建议,完整详细可收藏
279 1
不全?MySQL数据类型精讲,定点日期枚举文本字符串,json二进制,空间,选择建议,完整详细可收藏
|
Java 关系型数据库 MySQL
HikariPool-1 - Exception during pool initialization. Springboot 默认选择的mysql
HikariPool-1 - Exception during pool initialization. Springboot 默认选择的mysql
1192 1
|
存储 关系型数据库 MySQL
MySQL存储引擎的选择
数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据操作
80 5
|
关系型数据库 MySQL 测试技术
软件测试mysql面试题:如何从表中选择所有奇数记录?
软件测试mysql面试题:如何从表中选择所有奇数记录?
71 0
|
SQL 关系型数据库 MySQL
软件测试mysql面试题:编写SQL查询以从表中选择所有记录?
软件测试mysql面试题:编写SQL查询以从表中选择所有记录?
78 0
|
存储 JSON NoSQL
为什么 MongoDB 索引选择B-树,而 Mysql 索引选择B+树(精干总结)
本文献给准备面试或者是还在面试的你。常见面试题,送分题目,不拿白不拿。
442 0
为什么 MongoDB 索引选择B-树,而 Mysql 索引选择B+树(精干总结)