在一百年前,人类的第一台计算机还没能诞生,黑纸白字是人们记录信息的唯一方式,档案馆是信息的集结地,数据分析还只能通过人工的分类,检索来完成。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(转载)

MySQL与Postgres大不同 优步选择了前者相关推荐

  1. 滴滴收购优步谈判过程_大流行之后,优步正在为绿色业务做准备

    滴滴收购优步谈判过程 Uber has promised to zero out its carbon emissions by 2040 and claims that 100% of rides ...

  2. 上市首日大涨15%,投出优步的私募巨头TPG迎来开门红?

    美东时间1月13日,私募股权巨头TPG Inc正式登陆纳斯达克,也是2022年美股开年的第一个大IPO.其IPO定价为每股29.50美元,发售股票约3400万股,筹资约10亿美元,股票代码为" ...

  3. 专家:滴滴优步合并存大数据垄断隐忧

    据报道,优步(全球)创始人卡兰尼克日前发布内部信指出,滴滴出行和优步中国合并后,优步中国将取得新公司20%的股权,而优步(全球)将成为滴滴最大的股东.专家分析认为,两巨头合并后不仅占有绝对优势市场份额 ...

  4. 优步司机端界面大改版,不会用搓这里!

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  5. 【硅谷牛仔】优步CEO,最倒霉的成功创业者 -- 特拉维斯·卡兰尼克

    特拉维斯·卡兰尼克,1977 年出生于美国旧金山,高中毕业后,他考入加利福尼亚大学洛杉矶分校,但1998年辍学.辍学后曾先后创立多家科技公司,2009 年创立Uber,Uber最新一轮融资估值达到35 ...

  6. 优步CEO是混蛋吗?

    优步CEO是混蛋吗? 财富中文网 2017-06-14 10:26 阅读:9494 摘要:原文刊载于:2017年6月1日出版的<财富>杂志尽管时钟已指向晚上7:30,但旧金山的夏日骄阳仍然 ...

  7. 如何优化MySQL千万级大表

    很好的一篇博客,转载 如何优化MySQL千万级大表 原文链接::https://blog.csdn.net/yangjianrong1985/article/details/102675334 千万级 ...

  8. 一个通用数据库操作组件DBUtil(c#)、支持SqlServer、Oracle、Mysql、postgres、SQLITE

    这是一个.net下操作数据库(结构数据库)的工具类,支持sqlserver.oracle.mysql.postgres.sqlite.access等常见数据库. 注意:它并不是一个orm工具(常见的o ...

  9. mysql数据迁移到sqlserver_一个通用数据库操作组件DBUtil(c#)、支持SqlServer、Oracle、Mysql、postgres、SQLITE...

    这是一个.net下操作数据库(结构数据库)的工具类,支持sqlserver.oracle.mysql.postgres.sqlite.access等常见数据库. 注意:它并不是一个orm工具(常见的o ...

最新文章

  1. POJ 3111 K Best (最大化平均值,贪心 二分)难度⭐⭐⭐
  2. ggplot2笔记3:工具箱——误差线、加权数、展示数据分布
  3. 成功解决Exception “unhandled ModuleNotFoundError“No module named ‘sklearn.neighbors.classification‘
  4. 因封杀Adobe 美司法部对苹果展开反垄断调查
  5. 如何优雅地在公众号输入数学公式?推荐几款神器
  6. Linux Kernel 多个本地信息泄露漏洞
  7. QGraphicsProxyWidget paintEvent(from 1+1 =2)
  8. from robot.api import logger
  9. C#编写程序监测某个文件夹内是否有文件进行了增,删,改的动作?
  10. 经典的0.001秒,让程序回复正常的0.001秒。
  11. Zookeeper 入门示例
  12. 微信接入验证 php,php版微信公共平台开发者认证实例
  13. 国际短信通道短信后台软件路由流程—移讯云短信系统
  14. 基于SSM+Vue的手机商城销售系统项目
  15. CAD不支持实时调试
  16. 青岛科技大学和青岛大学计算机专业,青岛科技大学和青岛大学企业管理专业哪个比较好考...
  17. c语言上机试题倒计时,C语言课程实训-显示考试倒计时.doc
  18. 有效解决package ‘xxxx‘ is not in GOROOT
  19. Linux中报错segmentation fault
  20. 语法分析器(c++)

热门文章

  1. [数据分析自学帮手]数据分析必备的统计学知识大梳理,还不赶紧收藏?
  2. 哄女孩开心的搞笑短信
  3. 全球及中国激光流量管行业销售现状及盈利前景预测报告(2022-2027)
  4. PHP结合PDF2SWF插件实现在线PDF预览
  5. 【链表习题集1】整体和局部反转链表同频和快慢指针合并链表
  6. Wikinbsp;修改时区
  7. 聚合不应出现在 WHERE 子句中,除非该聚合位于 HAVING 子句或选择列表所包含
  8. wince 静态文本框字体和颜色、背景色的动态更改
  9. 详述java的File类常用方法
  10. 三丰云,免费云服务器