400-090-9964


博客 | 论坛

教学文章

PostgreSQL学习指南:九层宝塔步步高升

时间:2020-03-25 来源:

PostgreSQL学习的九层宝塔

第一层:初识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国际社区的贡献者档案中还没有出现中国人的名字。当然,国内也不乏优秀的系统编码者,期待通过大家共同的努力,将会涌现更多、更优秀的系统编码工程师出现在列表中!

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

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

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

后记

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

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

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

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

参考书目

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

《PostgreSQL 9X之巅》

《PostgreSQL实战》

《PostgreSQL指南:内幕探索》

《PostgreSQL服务器编程》

……

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

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

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

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

关于PG认证

2019年,“中国PostgreSQL培训认证”战略合作伙伴签约仪式举行,中国开源软件推进联盟PostgreSQL分会(“中国PG分会”)秘书长、中国PG分会培训认证执行主任、神脑资讯(优技教育)总经理陈卫星先生出席仪式,双方共同签署《中国PostgreSQL培训认证合作协议》,并由中国PG分会秘书长白国华先生授予神脑资讯(优技教育)“中国PostgreSQL培训机构授权牌”,神脑资讯(优技教育)正式成为“中国PostgreSQL培训认证”战略合作伙伴。

有意向的同学可以联系以下咨询老师QQ:2036105272,137-1818-8639可以放心通过PG认证

版权所有@北京神脑资讯技术有限公司(CUUG,中国UNIX用户协会) Copyright 2017 ALL Rights Reserved 京ICP备11008061号 京公网110108006275号

CUUG旗下网站:www.cuug.com.cn www.cuug.com oracle.cuug.com bbs.cuug.com bd.cuug.com

电话:010-59426307 010-59426319 邮政编码:100089

海淀校区:北京市海淀区紫竹院路88号紫竹花园4号楼D座703(CUUG)