朱赟的技术管理课
朱赟
计算机博士,前 Airbnb 技术经理
48935 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 39 讲
时长 13:23
时长 13:31
朱赟的技术管理课
15
15
1.0x
00:00/00:00
登录|注册

12 | 每个工程师都应该了解的:数据库知识

研发过程中需要注意的问题
数据库领域的问题
技术特点和选型问题
数据不一致性问题
加锁机制
Race Condition
事务支持的使用注意事项
利用数据库提供的事务性
唯一性索引
创建索引的目的
数据库访问瓶颈
人为错误
数据库架构
选型
DBA的价值
应用场景和避免问题的重要性
学习和比较两种技术
MySQL和PostgreSQL并存
工程师和决策者的偏好
迁移代价很大
大部分情况下由决策者决定
两者各有优势和使用场景
从MySQL转到PostgreSQL
从PostgreSQL转到MySQL
总结
缓存和主从机制
数据库锁
事务支持
索引
数据库问题
专攻数据库的大牛
数据库选型的重要性
Square公司的数据库转型
技术选型和转型
公司数据库选型
MySQL VS PostgreSQL
Uber的数据库迁移
研发过程中的数据库问题
数据库知识

该思维导图由 AI 生成,仅供参考

数据库和编程语言一样,同样是软件工程师们的必争之地。今天我就和大家聊一些数据库相关的知识。
去年 Uber 发表了一篇文章,宣布他们从 PostgreSQL 转到 MySQL 了。文章的内容很好,同时还科普了一些数据库索引和复制的基本常识。当时,我转给了一个朋友,朋友看了之后说:“哦,他们 2013 年才发了一篇文章说他们从 MySQL 转到 PostgreSQL 。”
我找来朋友提到的那篇旧文,读过之后,大概理解了两篇转型文章背后的原因。
作为两大主流开源数据库,MySQL 和 PostgreSQL 的 “战争” 从未停止,虽然硝烟不如编程语言那么浓烈,但也是你来我往,剑影刀光。
如果去 Quora 或者 Stack Overflow 上搜索 MySQL V.S. PostgreSQL 这样的关键字,会出现一大堆帖子,大家各执一词众说纷纭,我的感觉则是:两者各有各的优势和使用场景,并不存在一种数据库对另一种压倒性优势。
对于大部分程序员来说,公司用哪个数据库,基本无需你去决定。加入一个公司的时候,除非是创业公司,或者你是 CTO、VP、总监级别的,否则大部分的技术选型早已应该尘埃落定。
尤其是数据库,一旦选择,再迁移的代价非常大。因此,除非有颠覆性的优势或者难以克服的问题,很少有公司会去费时费力做这种大的迁移。
不论是技术选型还是技术转型,其中不可忽略的因素是:你的工程师更容易驾驭哪一种技术,或者有话语权的决策者们倾向于哪一种技术。这一点其实和程序语言的选型有异曲同工之处。
类似 Uber 两次高调转型的事情,在我曾经工作过的 Square 公司也发生过。
Square 最早使用的是 MySQL,到了 2012 年,由于 PostgreSQL 的各种优势越来越突出 —— 比如对地理空间(Geospatial)数据和搜索的支持,当时几位资深工程师也开始大力倡导,很多新的服务就尝试性地使用 PostgreSQL。
那时候,公司的架构是 MySQL 和 PostgreSQL 并存的。对于我而言,这就有机会学习、掌握和比较两种不同的技术。
在我来看,两者各有特点,有些技术实现在 MySQL 里更方便一点,另一些则反之。无论哪种数据存储方式,总有方案可以解决问题,并没有觉得非要哪一种才行。
一个公司如果数据库从来不出问题,那一定是因为没有业务量或者流量。所有技术的选型和设计,都有它的应用场景,除去那些让人开心的案例,剩下的毫无疑问就是坑。
如何尽可能地避开这些坑,如何在出现问题的时候可以用最快的速度去修复,这些都是至关重要的因素。
大部分工程师并不是数据库专家,在 Square 公司两种数据库并存的期间,PostgreSQL 的牛人寥寥无几,但是 MySQL 却有几个专家是极为靠谱的。对我们而言 ,PostgreSQL 和 MySQL 的相对优势,都比不过出问题的时候有人救火和解惑来的重要。
另外,一个公司维系两套同类的数据库系统本身就是个负担,因为这些原因,那些使用 PostgreSQL 的服务慢慢就转成了 MySQL 。
我们支付类的技术工作需要强事务和一致性的支持,所以 NoSQL 类型的数据库用得比较少,主要使用的是 MySQL 或者 PostgreSQL。由于在工作中常常与数据库打交道,我也逐渐了解到不少相关的知识和技术,但是线上真的出了问题,我还是没有把握自己去搞定。
好在,每个公司都会有一些专攻数据库的大牛,这种专门的职位便是 DBA,有的中小创业公司没有专职 DBA,数据库便由做运维的人维护。我和几位这样的牛人私交甚好,加之平时自己处理起系统中出现的相关问题,也会常常请教他们,一来二去就知道了很多有趣的数据库知识。
对数据库专家我一向是敬佩的态度,他们的价值不可小觑。公司只要稍具规模,如果数据库这块做不好,基本也就没什么可玩的了。数据库可以说是互联网公司最宝贵的资产,这块不出问题也罢,一出问题,即是见血封喉,服务直接宕机。

关于数据库,最常见的问题都有哪些呢?

确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Uber从PostgreSQL转向MySQL的经历,探讨了MySQL和PostgreSQL的优劣势及适用场景。文章指出数据库选择由决策者决定,工程师需熟练掌握所用数据库技术。强调了数据库专家的重要性,指出数据库是互联网公司最宝贵的资产之一。文章深入浅出地介绍了数据库领域的重要知识,对工程师们具有很高的参考价值。文章讲述了数据库访问瓶颈、索引、事务支持、数据库锁、缓存和主从机制等问题,提供了实战经验和解决方案。总的来说,文章内容丰富,涵盖了数据库技术的方方面面,对于工程师们来说是一份宝贵的学习资料。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《朱赟的技术管理课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(16)

  • 最新
  • 精选
  • 一路向北
    用过数据库,但是没有怎么去理解过。读过之后,醍醐灌顶
    2017-12-09
    9
  • 公剑|Gong Jian
    安姐,在线修改大表的表结构,MySQL会lock住,有什么好的解决方案吗?
    2017-12-14
    5
    7
  • shibo
    非常干货!!!!安姐以后是不是可以在billing搞个tech talk呀 lol
    2017-12-08
    5
  • RAY
    适合初级科普
    2018-04-11
    3
  • Geek_c8eb71
    数据库的初级原理
    2018-08-03
    1
    2
  • FlyYan
    课程有些乱,感觉在凑数
    2022-07-28归属地:北京
    1
  • kimi
    安姐什么时候说一下分布式事务,以及你曾工作过的两个公司在支付环节如何实现分布式事务
    2017-12-16
    1
  • 子悠
    安姐的这篇文章很实用,Mark了!
    2017-12-08
    1
  • MC
    嗯,就在刚刚上线一个核心存储过程的变更。此存储过程所以请求都会涉及到。然后性能与原先的有所变差,导致API请求积压并超时😢。Rollback后,写了个Incident Report。现在在BART等车回家…
    2017-12-08
    1
  • 数据库,大有学问
    2021-04-04
收起评论
显示
设置
留言
16
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部