从Uber切换Postgres说起

简介: 本文PPT来自云徙科技联合创始人及CTO李元佳于10月16日在2016年杭州云栖大会上发表的《从Uber切换Postgres说起》。

本文PPT来自云徙科技联合创始人及CTO李元佳于10月16日在2016年杭州云栖大会上发表的《从Uber切换Postgres说起》。

为什么Uber的工程师放弃使用Postgres,转而使用MySQL?这与下面的事件背景有关:Uber的工程师在使用Postgres时遇到了限制,具体是限制写入的低效率架构、低效的数据复制、潜在的表格损坏、不完善的MVCC支持、难以升级到新版本等,看来问题还不少呢!

尽管在Uber发展的早期Postgres能很好地胜任工作,但随着业务的扩展,Postgres开始逐渐显得力不从心了。现在,除开一些遗留的Postgres实例,Uber数据库的主体要么是基于MySQL,要么在某些特殊的情形下,使用了像Cassandra这样的NoSQL数据库。

具体而言,Postgres中记录的多版本机制在旧版本回收和管理问题问题比较大,记录写入路径比较长,中途需要度旧版本的话,代价比较大。在索引与数据的关系这个方面上,与MySQL使用Clustered Index不同,Postgres处理关系采用的是B-Tree + Heap 组合,这种索引结构差异导致一系列小问题,如记录物理位置变更会导致所有索引的变更,二级索引的检索需要进行两次索引检索,并且如果主索引的数据量大的话,比较消耗空间。其他的问题还包括Postgres表结构中存在的写放大问题(一次更新,四次写入),Postgres流复制问题.....针对这些问题,人们提出了逻辑复制解决方案、复制的业务问题解决方案,来解决这些问题。

所以难怪Uber会切换Postgres,这一切还得从Postgres自身说起呀!

831c0ad8c94c7bc8ae25a06d26bd9f9ad9a7555d

d0816f6f7886f34d533e6b62bf8e249edacf587c

523e92c2868615feb7e8c20128dce3ab8f90be16

03319211e1dbc3d8c69ce122014809ca52ba6fa9

515cc42034ee6f764d789b827f58fac7ba3e780e

ec8e2edf12ae83ad6e1f5234c536cc7640340cfd

c136685bcb83735ddc2188fb4ebcd2f7fb2d092e

cac9fc0f1a56dbf3b1c3909c3c3c024aaadbbfdc

7c2ab7ffee8fe74078cad7c01f30c98304cc1378

b9d63330022861ebd0987bdb4585750c60cb47d4

cedf19fb484fa1a82fb7a8aa69c794a6cf7b6a1f

69f432c9be26a45af31f414383a3f26452a136c2

c265e632ec6a32ac00f39c24811b489f7ef8efe5


相关文章
|
3月前
|
Go
select实战指南:协程切换技术
select实战指南:协程切换技术
23 0
|
4月前
|
存储 关系型数据库 MySQL
太厉害了!华为大牛终于把MySQL讲的明明白白(基础+优化+架构)
爱因斯坦说过“耐心和恒心总会得到报酬的”,我也一直把这句话当做自己的座右铭,这句箴言在今年也彻底在“我”身上实现了。 每一个程序员都拥有一座大厂梦,我也不例外,去年面试阿里,竟然被MySQL问倒了,很多相关性的问题都没有答上来,才2面就凉凉了。为面试做了很多准备,收集很多关于MySQL面试题
|
5月前
|
运维 关系型数据库 MySQL
GitHub无抗手!MySQL DBA攻坚指南一出,阿里数据库专家都解脱了
大家可能并不觉得,数据库其实非常重要,每个业内巨头,每个成熟的互联网产品都有多个数据库系统,能保证大量并发场景下不出错,并非易事。尤其是银行、电商、电信、电力、航空等实时交易重要的环境中,可靠的数据库是重中之重,稳定压倒一切。
|
8月前
|
关系型数据库 MySQL 程序员
卷?阿里DBA首次公开MySQL调优笔记,竟让GitHub的程序员集体叫好
对于工作了两三年的技术人员来说,在实践上已经有了比较多的积累,解决过很多问题——可能通过sys schema查询事务锁等待解决了系统的并发问题;通过设计读写分离架构扩展了应用的读性能线性扩展问题 但是作为求知欲强的技术人员,我们急切地希望知其所以然,了解MySQL到底是怎么设计的,以及为什么这样设计,读写分离架构适应的场景有哪些?什么时候建议用分库分表?等等。
69 0
|
9月前
|
SQL 运维 NoSQL
阿里大牛撰写"星耀级"MySQL DBA工作笔记!颠覆我对数据库的认知
MySQL是开源数据库方向的典型代表,它拥有成熟的生态体系,同时在可靠性、性能、易用性方面表现出色,它的发展历程见证了互联网的兴衰与成长。 在 DeveloperWeek 上曾发起一个调查,超过 3/5 的受访者使用 SQL,其中MySQL 以 38.9% 的使用率高居榜首,其后依次是 MongoDB(24.6%)、PostgreSQL(17.4%)、Redis(8.4%)和 Cassandra(3.0%)。毫无疑问,以MySQL为主的开源技术生态正变得越来越流行。同样的,对我们掌握MySQL也迫在眉睫。那么,接下来,就让小轩带领大家来深入了解MySQL吧!
|
SQL 存储 网络协议
【MySQL技术之旅】(4)这也许是你的知识盲区-[MySQL主从架构]之半同步机制
【MySQL技术之旅】(4)这也许是你的知识盲区-[MySQL主从架构]之半同步机制
103 0
【MySQL技术之旅】(4)这也许是你的知识盲区-[MySQL主从架构]之半同步机制
|
SQL 存储 JSON
【MySQL技术之旅】(5)该换换你的数据库版本了,让我们一同迎接8.0的到来哦!(初探篇)
【MySQL技术之旅】(5)该换换你的数据库版本了,让我们一同迎接8.0的到来哦!(初探篇)
96 0
【MySQL技术之旅】(5)该换换你的数据库版本了,让我们一同迎接8.0的到来哦!(初探篇)
|
SQL 设计模式 存储
本周推荐 | mysql中业务系统可借鉴的设计
推荐语:学习优秀的开源系统来优化我们业务的架构设计,这是我们作为业务开发的必修课,这篇文章从经典的mysql系统原理引申到业务系统设计思考,让人耳目一新,值得我们学习。 ——大淘宝技术工程师 默达
191 0
|
SQL 数据库
德国同事Heiko开发的ABAP工具,能检测HANA数据库执行SQL的CPU tim
德国同事Heiko开发的ABAP工具,能检测HANA数据库执行SQL的CPU tim
82 0
德国同事Heiko开发的ABAP工具,能检测HANA数据库执行SQL的CPU tim
|
SQL 存储 数据库
Flutter 26: 图解关乎 SQL 数据库的二三事 (一)
0 基础学习 Flutter:第二十六步:学习了解 SQL 的基本操作~
3141 0