PostgreSQL ACE 深度访谈 | 第11期 李建平
由PG分会发起的“PostgreSQL ACE深度访谈”栏目,旨在挖掘ACE们对数据库行业的深度洞察,分享他们对行业发展的思考和个人感悟,对广大PGer们具有实际借鉴意义。
以下正文,转载请注明出处,并获得作者允许。
大家好,我是李建平,目前在成都文武从事鸿鹄/PostgreSQL数据库相关工作。我来自资阳,35000年前的“资阳人”开启了四川人类文明发展的历史篇章。资阳不仅哺育了东周孔子之师苌弘、西汉辞赋家王褒、东汉经学家董钧等历史名人,还被誉为“蜀人原乡、三贤故里”。这里的文化底蕴深厚,吸引了许多学者和游客的目光。此外,资阳也是开国十大元帅之一陈毅的故居,彰显了其在中国历史上的重要地位。
备注:资阳市,别称西部车城,四川省辖地级市,位于四川盆地中西部。资阳是一座历史悠久的城市,人文底蕴深厚,拥有2100多年的建制史。旅游资源丰富,包括陈毅故里、安岳石刻、圆觉洞风景区、半月山大佛等著名景点。美食方面,资阳以其独特的地方风味著称,如临江寺豆瓣、乐至烤肉、伍隍猪等传统美食。
凤岭公园,一半山水一半城(图片来自网络)
安岳石刻(图片来自网络)
欢迎大家关注我的个人博客(https://blog.japinli.top),我在这里总结了一些自己工作中遇到的问题,技术分享等。
《PostgreSQL 14 Internals》这本书深入探讨了 PostgreSQL 数据库的内部机制,它通过丰富的实例和图示,帮助读者更好地理解复杂的概念。它不仅适合数据库管理员,对于开发者以及希望深入了解 PostgreSQL 内部运作的技术人员,同样具有很大的帮助和价值。
我是在2017年首次接触PostgreSQL数据库的。当时,我所在的公司在PostgreSQL的基础上进行了二次开发,这段经历让我与PostgreSQL结下了不解之缘。作为一款被誉为“最先进的数据库”的系统,PostgreSQL以其高度的扩展性和灵活性深深吸引了我。无论是在数据模型的设计上,还是在功能的自定义方面,它都提供了丰富的可能性,让我感受到前所未有的创造力和便利。通过不断的学习和实践,我逐渐体会到PostgreSQL的强大之处,令我对数据库的理解更加深入,也让我在技术上不断成长。
我最开始使用的是PostgreSQL 9.6版本,清晰地记得当时我们需要在PostgreSQL的基础上实现列存储支持。然而,由于当时PostgreSQL的表访问方法(Table AM)尚未发布,我们不得不在内核层面进行修改,这导致对PostgreSQL的侵入性过大。随着PostgreSQL 12版本中Table AM的推出,支持不同存储引擎的过程变得更加简单和灵活,侵入性也显著降低。Table AM的引入使得开发者能够更好地定制数据存储方案,充分利用PostgreSQL的扩展性,从而提升性能和适应性,这一改进让我印象深刻。
我会在业余通过开发新功能、解决问题和进行代码审查为 PostgreSQL 做贡献。
PostgreSQL的表访问方法(Table AM)是我非常喜欢的一个功能,它使得PostgreSQL的存储引擎能够方便地进行扩展。例如,Citus的列式存储正是通过Table AM来实现的。pg_duckdb插件利用DuckDB引擎在PostgreSQL中实现了高效快速的数据分析,这是我特别欣赏的一个扩展插件。通过这些功能,PostgreSQL不仅提升了性能,还为数据分析和处理提供了更多的灵活性和可能性。
增量备份、Stream IO。
Ubuntu,Emacs,NeoVim,git,gdb,gtags,psql 以及 PostgreSQL 的编译工具 gcc、make等。
首先,熟悉数据库的基本概念并掌握PostgreSQL的基本架构是非常重要的。其次,找一两本优质书籍作为学习参考,可以参考灿灿推荐的PostgreSQL书籍。多阅读官方文档也是必要的,PostgreSQL的官方文档提供了一手的学习材料。
此外,像Cybertec、pganalyze、Fujitsu和EDB等公司都有各自的博客,里面有许多优质的文章,适合我们进行实践练习。最后,实践是检验真理的唯一标准。在阅读的同时,一定要积极动手进行实践,这样才能真正掌握所学的知识。
Neon,pg_duckdb, hydra, tmux
我有订阅 pgsql-hackers 邮件列表,平时也会抽时间了解一下社区的动态。此外由于我使用 tmux 比较多,也订阅了 tmux-users。
PostgreSQL IRC,
https://anarazel.de/talks/
https://pganalyze.com/blog
https://www.cybertec-postgresql.com/en/blog/
https://www.postgresql.fastware.com/blog
扎实的理论基础,快速识别和解决问题的能力,保持对新技术和工具的好奇心,愿意不断学习和更新自己的技能。