PostgreSQL学习的九层宝塔
活动预告: 在即将到来的 2019 数据技术嘉年华大会上,来自 PostgreSQL 方面的主题同样丰富多彩,既有来自云厂商的数据库研发成果,新版本新特性介绍,还有来自于用户的最佳实践。
在河池等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站设计、成都网站制作 网站设计制作按需定制制作,公司网站建设,企业网站建设,成都品牌网站建设,网络营销推广,成都外贸网站建设,河池网站建设费用合理。
这些主题包括来自 华为智能数据与存储领域总裁 周跃峰 , 阿里巴巴以及PostgreSQL社区首席布道师的 周正中(德哥),华为GaussDB生态与标准CTO 王伟民,PostgreSQL社区核心成员 张文升,腾讯云的技术专家 孙旭,云和恩墨的研究员 刘伟,阿里云的技术专家 周振兴,腾讯云技术专家 李跃森 等的主旨分享。这些专家将为大家展示 Postg reSQL 数据库蓬勃的生命力和广泛的数据库生态,以及最佳应用场景。详情: http://www.modb.pro/dtc(复制到浏览器中打开)
第一层:初识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分会平台发表或进一步交流。
延伸阅读...
关于中国PostgreSQL分会
中国开源软件联盟PostgreSQL分会于2017年成立,由多家国内主要PG生态企业共同发起,是PostgreSQL数据库作为开源联盟重点发展和支持对象所产出的重要成果。受工信部中国电子信息产业发展研究院、中国开源软件联盟共同指导,以提高中国PostgreSQL发展和应用水平为宗旨,致力于构建PG产业生态、推动PG技术产学研用发展。作为国内唯一的PG行业协会组织,分会承担着在国内推广和发展PostgreSQL技术的职能。
关于中国PostgreSQL产业发展基金
中国PostgreSQL发展基金是由中国开源软件联盟PostgreSQL分会发起并管理,致力于在国内推动PostgreSQL生态发展的产业基金,PostgreSQL发展基金吸收多家PG技术应用企业捐助,基金总规模1000万。
分会使命:依托PG技术,催化产业共赢。
分会职能与任务:提升PG在中国影响力、促进PG产业生态发展
分会重点工作:
PostgresConf.CN(PCC)大会——中国地区规模最大,国际嘉宾最多的PG生态大会,PGconf全球正式会议。
PostgreSQL中国培训认证体系——国内唯一的体系化、规范化PG培训与认证体系
PostgreSQL中国象牙塔计划——联合各会员单位和PG产业链企业,依托中国PG产业发展基金,致力于推动高等院校PG产学研用生态发展,培养更多高水平PG技术人才的计划。该计划主要通过全国范围100所高等院校共建开源数据库创新实验室,PG分会高校实训基地,PG创新研究启动基金等方式落地,目标在未来5年培养5万以上PG专业技术人才。
PostgreSQL中国贡献者计划——依托中国PG产业发展基金和PG分会国际技术交流桥梁的职能,引导、培育更多的中国PG技术人员向国际社区核心开发者,源码贡献者方向发展,培育出一支以上世界级的核心社区贡献者团队。帮助中国数据库内核研究跨越式发展。
PostgreSQL生态基础建设——除PG培训认证体系外,通过PG人才供需平台、高等院校象牙塔计划、PG中国Support平台等打造推动PG生态发展的基础设施。为产业发展提供必要支撑与支持。
会员单位(截止2019.11):
阿里云计算有限公司
瀚高基础软件股份有限公司
腾讯云计算(北京)有限公司
北京百度网讯科技有限公司
云和恩墨(北京)信息技术有限公司
平安科技(深圳)有限公司
平安壹钱包电子商务有限公司
山大地纬软件股份有限公司
国家电网全球能源互联网研究院
北京许继电气有限公司
亚信科技(南京)有限公司
武汉大学计算机学院
惠而浦(中国)股份有限公司
北京海量数据技术股份有限公司
北京晟数科技有限公司
北京优技教育科技有限公司
北京今日智能科技有限公司
南京柯普瑞信息技术有限公司
成都文武信息技术有限公司
北京优炫软件股份有限公司
天曦网络科技(北京)有限公司
广州云徙科技有限公司
北京优帆科技有限公司
上海佳软信息科技有限公司
上海云贝网络科技有限公司
北京太阳塔科技有限公司
杭州乘数科技有限公司
本文名称:PostgreSQL学习的九层宝塔
URL网址:http://scyanting.com/article/ippggi.html