PostgreSQL学习的九层宝塔

活动预告:在即将到来的 2019 数据技术嘉年华大会上,来自 PostgreSQL 方面的主题同样丰富多彩,既有来自云厂商的数据库研发成果,新版本新特性介绍,还有来自于用户的最佳实践。

这些主题包括来自 华为智能数据与存储领域总裁 周跃峰 , 阿里巴巴以及PostgreSQL社区首席布道师的 周正中(德哥),华为GaussDB生态与标准CTO 王伟民,PostgreSQL社区核心成员 张文升,腾讯云的技术专家 孙旭,云和恩墨的研究员 刘伟,阿里云的技术专家 周振兴,腾讯云技术专家 李跃森  等的主旨分享。这些专家将为大家展示 PostgreSQL 数据库蓬勃的生命力和广泛的数据库生态,以及最佳应用场景。详情:http://www.modb.pro/dtc(复制到浏览器中打开或者点击阅读原文)

前言


武侠世界,9是个神奇的数字,武学秘籍有《九阳真经》《九阴真经》,凡武功修炼到第九层,闯荡江湖将独孤求败,快意恩仇。以文昌塔为喻,我把学习PG划分九层,希望可以对玩转数据江湖的同学,有所参照,逐层递进,直至达到高手行列,闯荡职场,游刃有余。

第一层:初识PG,开阔心胸


数据库不只有Oracle、DB2、SQLSERVER,还有PostgreSQL(简称PG),PG是最强大的开源数据库,PG开源友好,学习PG可以从事DBA/应用开发/系统内核开发等工作,而且会有很大的发挥空间,使用PG可以为企业提供有效的数据库管理,也可以自主可控、节约成本。当今职场,多懂几个数据库,会让我们有更多的机会。

初识PG,主要是学习认知PG的起源发展,主要版本特性,应用领域;了解国际PG社区组织、资源、动态,与中国PG分会、PG社区建立联系,积极互动,获取学习资源,尝试分享,展示自我。

第二层:安装使用,动手操练


“安装部署、服务管理、体系结构、初始化配置、数据库对象管理”,这是PG的应用管理基础,DBA要会,应用开发也要会。当然两种角色关注重点稍有不同,譬如DBA关注架构部署、运行稳定性和高效性,而应用开发更多的是掌握数据库对象的创建及管理。

第三层:把握要点,提纲挈领


PG作为关系型数据库承担着管理企业数据的重任。功能、性能很重要,稳定性更重要,这也是作为DBA首要考虑的问题。PG数据库发展30多年,国际、国内的众多应用案例表明稳定性可以信赖。关注学习与稳定性相关的知识点,能够将PG的稳定性发挥的更好:

PG稳定性要点:

  • 内存配置

  • 日志配置

  • 磁盘管理

  • 并发控制

  • 进程控制

  • ……

PG的功能强大、繁多,可以系统化、模块化的选择性学习。譬如PG有地理信息数据处理功能(GIS),暂时用不到可以先放过,除非很有志趣。DBA和应用开发人员可以根据工作需要深入学习不同功能要点。

PG功能列表:

  • 安全控制

  • 基准测试

  • 监控功能

  • 审计功能

  • 并发控制

  • 并行处理

  • 临时表

  • 触发器

  • 函数、存储过程

  • 执行计划

  • 物理连接

  • 数据缓存

  • 物化视图

  • 分区表

  • 主从流复制

  • 逻辑复制

  • 访问外部数据

  • ……

第四层:熟练操作,得心应手


学习了稳定性要点、功能列表后,PG基本可以用来服务于工作了。通过不断的自我练习,满足工作业务需求,会看到自己的水平会不断的进步。

第五层:透视功能,探究原理


PG功能点繁多,独特的功能适用于不同的业务场景,而且随着PG版本的更新迭代,重要的功能点也会不断得到优化,无论是使用上的便捷性还是性能的增强,无不体现着源码内核贡献着的智慧与追求:使PG不断完善,更好的服务于业务。

譬如分区表,PG V9版本中是通过表继承+触发器的方式实现,因触发器本身的限制,数据的插入性能并不高;PG V10实现了内置分区表,创建的分区实质上也是普通的表结构,从而管理分区方便,数据插入效率得以提高;PG V11增加哈希分区、默认分区、支持更新分区键等,完善了分区的功能。

探究原理能从内部机理深入理解,面对问题也能透过现象看本质,发现问题的诱因是使用不当还是系统bug,从而能更好的处理问题。

第六层:问题处理,性能优化


习得第五层是为了更好的使用PG,遇到问题可以快速定位、分析处理。处理问题需要平时多积累整理,一方面是技术群、网站论坛抛出的问题,主动思考、整理,学习总结,以备不时之需,有些问题平常不经常遇到,但一旦出现,之前没有处理过会比较棘手;另一方面是工作中的问题,通常会有应急处理办法,问题处理后,尽量形成问题分析报告,对有些问题选择深度思考、讨论,探究根本原因,进而归档或分享,这都是宝贵的经验。

性能优化一直是数据库大脑的重点,也是运维、开发者工作价值的体现。通过对内幕的探索,能够拨云见日,配合相关工具通过配置或SQL的优化,来提升数据库的访问性能。

第七层:读懂源码,快速定位


大学计算机相关专业的同学,一般会有C语言的课程,C语言可以算是世界上最伟大的编程语言之一,可以用来编写UNIX/Linux的内核,也可以实现Python/Ruby解析器、Apache中间件等,很多关系数据库都能看到C语言的影子。

PG源代码也是用C编写,尝试学习源码是件有挑战性的事,就如同驾驶手动挡汽车,如能操作熟练,必能体会其中的乐趣。不用任何解读,就能快速定位到源代码直接理解PG的工作逻辑,帮助我们更好的使用PG。

第八层:编写源码,完善优化


编写PG源码是有志于从事系统编程工作同学的追求或方向,PG的强大凝聚了世界各地PG内核编码工程师的智慧,遗憾的是,PG国际社区的贡献者档案中还没有出现中国人的名字。当然,国内也不乏优秀的系统编码者,期待通过大家共同的努力,将会涌现更多、更优秀的系统编码工程师出现在列表中!

PG国际社区贡献者列表链接:

https://www.postgresql.org/community/contributors/

第九层:融会贯通,自由驰聘


学习任何技能,最终的境界是融汇贯通,以无招胜有招。

无论大家从事DBA、DEV或者系统内核开发,通过有效的方法,坚持不懈的积累都可以达到这一层,自由挥洒。

后记


以上内容只是在PG的学习角度做的一些总结,用好PG还需要有良好的系统、数据库原理知识,这也是基础,犹如地基,地基稳,宝塔立。PG学习的九层宝塔,是为了更形象具体的描述,学习过程不是说必须按此一层一层进行,大家可以根据自己兴趣或工作需要有所选择的开展学习。

最后,说两点学习的方法体会:

第一:多交流、多阅读、多练习。

多与前辈交流,科学问答,多阅读优秀书籍,自己多做实验。书是人类进步的阶梯,学习最好的伙伴,可以根据学习阶段或工作需要选择阅读。

参考书目

《PostgreSQL修炼之道-从小工到专家》

《PostgreSQL 9X之巅》

《PostgreSQL实战》

《PostgreSQL指南:内幕探索》

《PostgreSQL服务器编程》

……

第二:投资学习,向导师借力。

培训是件专业的事,优秀的培训导师可以帮你快速把握要领、修正方法;帮你节约时间、能更快速有效的提升技能;还能够提供更多的资源,譬如良好的学习环境、就业机会、技术支持等,人生多一良师,也是一大幸事。

读罢本文,想必有读者会问我是几层,我只能这么回答您“路漫漫其修远兮,吾将上下而求索”。如果本文对您有所帮助,也不枉费脑力一场;如果您有不同意见也可以借PG分会平台发表或进一步交流。

作者:魏波,中国PG分会培训认证执行总监、资深数据库工程师,十多年的数据库运维管理及培训经验,掌握PostgreSQL架构部署、性能优化等,致力于推动PostgreSQL在中国的发展。

延伸阅读...

关于中国PostgreSQL分会


中国开源软件联盟PostgreSQL分会于2017年成立,由多家国内主要PG生态企业共同发起,是PostgreSQL数据库作为开源联盟重点发展和支持对象所产出的重要成果。受工信部中国电子信息产业发展研究院、中国开源软件联盟共同指导,以提高中国PostgreSQL发展和应用水平为宗旨,致力于构建PG产业生态、推动PG技术产学研用发展。作为国内唯一的PG行业协会组织,分会承担着在国内推广和发展PostgreSQL技术的职能。

关于中国PostgreSQL产业发展基金


中国PostgreSQL发展基金是由中国开源软件联盟PostgreSQL分会发起并管理,致力于在国内推动PostgreSQL生态发展的产业基金,PostgreSQL发展基金吸收多家PG技术应用企业捐助,基金总规模1000万。

分会使命:依托PG技术,催化产业共赢。

分会职能与任务:提升PG在中国影响力、促进PG产业生态发展

分会重点工作:

  1. PostgresConf.CN(PCC)大会——中国地区规模最大,国际嘉宾最多的PG生态大会,PGconf全球正式会议。

  2. PostgreSQL中国培训认证体系——国内唯一的体系化、规范化PG培训与认证体系

  3. PostgreSQL中国象牙塔计划——联合各会员单位和PG产业链企业,依托中国PG产业发展基金,致力于推动高等院校PG产学研用生态发展,培养更多高水平PG技术人才的计划。该计划主要通过全国范围100所高等院校共建开源数据库创新实验室,PG分会高校实训基地,PG创新研究启动基金等方式落地,目标在未来5年培养5万以上PG专业技术人才。

  4. PostgreSQL中国贡献者计划——依托中国PG产业发展基金和PG分会国际技术交流桥梁的职能,引导、培育更多的中国PG技术人员向国际社区核心开发者,源码贡献者方向发展,培育出一支以上世界级的核心社区贡献者团队。帮助中国数据库内核研究跨越式发展。

  5. PostgreSQL生态基础建设——除PG培训认证体系外,通过PG人才供需平台、高等院校象牙塔计划、PG中国Support平台等打造推动PG生态发展的基础设施。为产业发展提供必要支撑与支持。

会员单位(截止2019.11):

  • 阿里云计算有限公司

  • 瀚高基础软件股份有限公司

  • 腾讯云计算(北京)有限公司

  • 北京百度网讯科技有限公司

  • 云和恩墨(北京)信息技术有限公司

  • 平安科技(深圳)有限公司

  • 平安壹钱包电子商务有限公司

  • 山大地纬软件股份有限公司

  • 国家电网全球能源互联网研究院

  • 北京许继电气有限公司

  • 亚信科技(南京)有限公司

  • 武汉大学计算机学院

  • 惠而浦(中国)股份有限公司

  • 北京海量数据技术股份有限公司

  • 北京晟数科技有限公司

  • 北京优技教育科技有限公司

  • 北京今日智能科技有限公司

  • 南京柯普瑞信息技术有限公司

  • 成都文武信息技术有限公司

  • 北京优炫软件股份有限公司

  • 天曦网络科技(北京)有限公司

  • 广州云徙科技有限公司

  • 北京优帆科技有限公司

  • 上海佳软信息科技有限公司

  • 上海云贝网络科技有限公司

  • 北京太阳塔科技有限公司

  • 杭州乘数科技有限公司

了解 PostgreSQL 数据库生态,了解那些从 O2P 的故事和历程,诚邀参与 『2019 数据技术嘉年华』大会!现在加入,尽享超低票价优惠:

原文地址:https://www.cnblogs.com/hzcya1995/p/13311894.html