官宣!这才是优秀的数据库程序员

如果评选出数据库中最难以理解的模块,那么非优化器莫属。作为数据库从业者,对优化器不够了解,如同猛虎没有了利爪,在对数据库调优的过程中往往余力不足。

数据库从业人员对优化器的掌握程度大致可以分成以下 3 个层次:

  • 层次一:粗浅了解,比如知道优化器分为逻辑优化和物理优化,了解一些逻辑优化的方法,知道执行计划的来源,能看懂优化器产生的执行计划。
  • 层次二:详细了解,在粗浅了解的基础上,能够根据自己对优化器的了解,调整出优化器“喜爱”的 SQL 语句,并且对于产生的执行计划的优劣一目了然,知其然更知其所以然。
  • 层次三:深度了解,需要对优化器的每个细节有清楚的认知,在我们写出一个 SQL 语句之后,可以庖丁解牛式地在脑海中浮现出语句在优化器中的优化过程,清楚地知道每个细节的实现过程。

达到层次一只需要阅读一些基础理论,初学者对优化器的了解都处于这个层次,但这种了解对于实际应用的意义不大。要想达到层次三则需要细致地解读优化器的源代码,作为数据库专家是必须要掌握到这一层的,但这个过程又过于“艰辛”。更多的数据库程序员游走在两者之间,目的无非是在数据库调优过程中手到擒来地使用优化器查询,也就是这里的层次二。

那么,是否可以在不分析数据库内核源代码的情况下,从数据库使用者的角度出发,结合外在的系统表信息、参数信息、执行计划信息反向把优化器的原理讲清楚,从而确保大家进阶到层次二,掌握优秀的数据库开发人员必备的核心技能优化器呢?答案是肯定的,通过深入的挖掘数据库的元数据、参数、执行计划,再结合数据库优化器的相关理论,一定能把优化器的实现说清楚。

然而,我们选择哪种数据库的优化器实现呢?答案是 PostgreSQL 数据库。PostgreSQL 是世界上最先进的开源关系数据库。2018 年 Stack Overflow 数据库调查结果显示,PostgreSQL 流行度排名第三,仅次于 MySQL 和 SQL Server。

PostgreSQL 在过去几年不论是在功能方面还是性能方面,开发人员对产品的满意度都非常高,越来越多的数据库开发和运维人员开始使用 PostgreSQL。

而 PostgreSQL 查询优化器被广泛认为属于教科书级实现:

  • 首先,它的实现层次非常清楚,有明确的物理优化和逻辑优化的边界,各种优化规则也被抽象成完全独立的小模块,便于分析和理解。
  • 其次,它对各种优化方法的支持也比较完备,对于常用的优化方法,都可以在 PostgreSQL 找到实践的案例。
  • 另外,PostgreSQL 的优化器处理查询语句的能力更强,借助于优化之后的动态规划方法和遗传算法可以支持非常复杂的查询。

目前,单独针对优化器的课程很少,而能够做到深入浅出解读 PostgreSQL 优化器的课程更是凤毛麟角。

原文发布于微信公众号 - GitChat精品课(CSDN_Tech)

原文发表时间:2018-10-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算D1net

私有云自动化能做到让IT团队不心烦吗?

没人喜欢重复、费时的任务,尤其是如果必须要人工完成。私有云自动化能将IT团队从这种恼人的日子中解放出来吗? ? 不像虚拟环境,需要大量的手工工作要分配、部署和管...

34940
来自专栏数据库新发现

好消息---Gmail增加免费POP3支持

Google网页数扩至80亿 增加免费POP3支持 (2004.11.12)   来自:ZDNET    在发布到Google公司blo...

17240
来自专栏企鹅号快讯

你真的了解微服务吗?

从一体化应用到微服务 首先为大家介绍一下微服务。在谈主题之前我们先回顾一下历史。一开始,使用的是一体化应用,也称为巨石应用,相信大家对于这个模型都非常地熟悉。然...

21360
来自专栏云加头条

【腾讯云的1001种玩法】征文活动

腾讯云技术社区「腾云阁」上线以来得到了广大程序员们的支持,为了吸引更多的开发者入驻,现再次举办【腾讯云的1001种玩法】征文活动。只要是与「腾讯云」相关的干货原...

6.4K00
来自专栏非著名程序员

是的,我又开发了一款产品,堪称效率神器

? 是的,最近我玩上了微信小程序,感觉开发这个还是蛮有意思的,所以,我又开发了一款小程序,邀请大家一起来看看,顺便欣赏一下。还请大家提提意见。 是的,继「活动...

40250
来自专栏织云平台团队的专栏

腾讯最完整的监控体系介绍,看这篇就够了!

腾讯业务监控体系的层级构成,用代表性的监控系统阐述每个监控层次的实现方法,以及与监控体系配合,业务做了哪些容灾和调度的方案。从而和大家分享腾讯最完整的关于做监控...

5.4K70
来自专栏人人都是极客

嵌入式学习路线图

可能是年前跳槽的比较多,遇到不少同学咨询到嵌入式行业发展和职业规划的问题,这里总结一下嵌入式行业的机遇和选择,希望对读者们有所帮助。 我们暂且宏观上把程序员分为...

49750
来自专栏CSDN技术头条

NoSQL数据库在现代应用程序中的作用

数据模型驱动不仅可以建立有效的应用程序,也可以有效地修改以合并新的特性。他们是“real-world”问题的解决和软件世界模仿现实世界的行为之间的桥梁。(是的,...

24950
来自专栏云加头条

张青林:TXSQL是什么?云计算时代数据库核弹头

腾讯MySQL内核研发专家张青林在腾讯“云+未来”峰会的「开发者专场」做了主题为“TXSQL:云计算时代数据库核弹头”的技术内容分享,本次分享从五个方面介绍TX...

83520
来自专栏IT大咖说

老牌大型门户网站多年经验——搜狐服务架构优化

内容来源:2017 年 08 月 10 日,搜狐研发中心架构师陈伟在“第二届APMCon中国应用性能管理大会”进行《搜狐服务架构优化实践》演讲分享。IT 大咖说...

19920

扫码关注云+社区

领取腾讯云代金券