PostgreSQL码农集散地

我为什么要搞数据库内核课程

我为什么要搞内核课程

数据库行业从业20多年, 一直有个心结: 什么时候在PostgreSQL这样的国际知名开源社区能有大量中国贡献者呢?

中国贡献者寥寥无几, 可能和这些原因有关:

  • 1、语言问题, 英语交流障碍筛掉了一波人.
  • 2、门槛较高, 至少得掌握C、算法、数据结构、数据库原理等, 又筛掉一大波人.
  • 3、整理好的从0到1的自学成才素材较少, 又筛掉一波真正有兴趣的人.  以下这种适合自学类型的书籍太少了.
    • https://www.interdb.jp/dl/part01.html
    • https://postgrespro.com/community/books/internals
    • https://github.com/exacity/deeplearningbook-chinese
    • https://exacity.github.io/deeplearningbook-chinese/
    • https://zh.d2l.ai/
    • https://d2l.ai/
    • https://www.hello-algo.com/
    • https://github.com/d2l-ai/d2l-zh
    • 《Hello 算法》:
    • 《动手学深度学习》:
    • 《Deep Learning Book Chinese Translation》:
    • 目前较好的 interDB/inernals 都是偏DBA的.
  • 4、商业驱动, 数据库内核人才算是高端型的, 虽然薪水不低, 但是需求量不算太大, 主要集中在数据库厂商、云厂商、大型央国企, 又筛掉一波人.
  • 5、缺乏内核开发者的人才认定标准. 只能通过开源贡献、职业经历来判断, 使得这个圈子很难扩散.
  • 6、相关专业的大学生没有被调动起来.

现在数据库内核人才大都大学计算机专业出身, 校招进入数据库研发型的企业逐步成长而来. 进入企业后转行的非常之少, 我个人认为不是他们不想转, 可能真的是缺乏自学成才的体系化素材. 就像2000年时, 很多网络工程师的诉求, 还真有一些农民工转行成为网络工程师的. 不是开玩笑, Cisco认证做得好啊.

我特别想做一件事:

1、解决自学成才门槛问题. 面向大学生、传统的DBA、深度使用数据库的应用开发者, 打造从0到1的自学成才素材, 把门槛降下来. 这批人有一定的基础和学习冲动, 基数够大. 让有兴趣的人因为职业发展去主动自学.

有了更多的人才后, 企业对人才也会提出更多的要求. 例如, 用户侧可能也会有数据库内核开发能力的要求, 至少能读懂内核代码, 不被厂商忽悠, 更进一步可以分析bug或者修bug, 甚至可以结合自身业务改进数据库内核功能.

学完之后, 能逐步达到: “熟悉开源协作流程、读懂数据库内核代码、分析BUG、修复BUG、开发插件或内核功能” 的水平. 辅以AI编程, 达到这个水平比预想的可能要快, 后面就是熟练程度问题了.

2、建立认证体系.

** 一个人的力量肯定是不够的, 得抱紧我的好兄弟们. 高校老师朋友们、生态企业和机构(如PG/PolarDB社区、周边生态公司们、培训机构如cuug等)、数据库领域KOL/内核开发老司机(如海波,老楼,老章,老纪等老司机)、大厂和国央企们 一起联合发布.   **

首批进入教学产品是结合了国际热门开源数据库PostgreSQL血统的国产开源的产品 PolarDB for PostgreSQL. 当然, 只拿PolarDB PostgreSQL开源来分享肯定无法吸引到其他数据库企业的老司机们参与进来, 例如protonBase, cloudberry, haloDB, 柏睿数据, apecloud, 等都是高手如云的公司. 如果能一起建设这个课程真的太棒了. 所以课程肯定不会只有PolarDB PostgreSQL开源. 期待 



Image
pic

说到不如做到, 我已经开始用AI在进行课程打造的实践了, 持续更新中:

《用AI修改pg_bulkload代码, 适配PolarDB PFS, 大幅度提升数据批量导入性能》

《PolarDB内核学习 - 1 如何快速对比 PolarDB 和 PostgreSQL 的代码差异》

《PolarDB内核学习 - 2 用doxygen生成PolarDB代码逻辑和结构图》

...  gdb 调试代码/了解内核运行逻辑.

附录 古典学习曲线(参考deepseek-r1建议)

1、数据库原理

  • 《The Internals of PostgreSQL》
  • 《PostgreSQL 14 Internals》
  • 《2024-数据库筑基课 系列》
  • 《数据库系统概念 Database System Concepts》   理论基石,适合理解数据库设计原理, 配套视频:
    • https://15445.courses.cs.cmu.edu/fall2023/
    • https://15445.courses.cs.cmu.edu/spring2025/
    • https://www.youtube.com/playlist?list=PLSE8ODhjZXjbj8BMuIrRcacnQh20hmY9g
  • 《Readings in Database Systems》   (Red Book): 收录经典论文,适合进阶学习。
    • http://www.redbook.io/

2、数据库管理和优化

  • 《开源PolarDB 基础课程》
  • 《开源PolarDB 进阶课程》
  • 《2010-PostgreSQL, Greenplum管理、优化视频 (提取码: 5nox 失效请通知我谢谢)》
  • 《2019-PostgreSQL 2天体系化培训 - 适合DBA》
  • 《2019-PG天天象上沙龙纪录 - 适合DBA》
  • 《2019-Oracle迁移到PostgreSQL - 适合DBA与业务开发者》
  • 《2021-Ask 德哥 系列 - 适合DBA与业务开发者》
  • 《2022-每天5分钟,PG聊通透 - 系列1 - 热门问题》
  • 《Oracle DBA 增值+转型 PostgreSQL 学习方法、路径》
  • 《2024-开源PolarDB|PostgreSQL 应用开发者&DBA 公开课》
  • 补充规模化管理 : https://github.com/apecloud/kubeblocks

3、应用场景与架构

  • 《2017-PostgreSQL 应用场景实践 - 适合架构师与业务开发者》
  • 《数据库选型之 - 大象十八摸 - 致 架构师、开发者》
  • 《PostgreSQL、Greenplum 技术+108个场景结合最佳实践《如来神掌》》
  • 《2018-PG生态、案例、开发实践系列 - 适合架构师与业务开发者》
  • 《2018-阿里云POLARDB for Oracle|RDS for PPAS 讲解视频》
  • 《2020-PostgreSQL 应用场景最佳实践 - 适合架构师与业务开发者》
  • 《2020-PostgreSQL+MySQL 联合解决方案课程 - 适合架构师与业务开发者》
  • 《2021-重新发现PG之美 系列 - 适合架构师与业务开发者》
  • 《2023-PostgreSQL|PolarDB 学习实验手册》
  • 《欢迎关注digoal其他文章》

4、数据库产品需求和选型

  • 《2021-DB吐槽大会 系列 - 适合产品经理、架构师与内核开发者》
  • 《企业数据库选型规则》
  • 《数据库选型思考(PostgreSQL,MySQL,Oracle)》
  • 《云、商业、开源数据库终局之战 - 商业角度解读PG如何破局 - openapi 、 扩展能力、插件开源协议》
  • 《[直播]大话数据库终局之战》
  • 《未来数据库方向 - 以及PostgreSQL 有价值的插件、可改进功能、开放接口 (202005)》

5、C

  • 入门经典
    • 《C Primer Plus》(第6版)  作者:Stephen Prata
  • 进阶
    • 《Expert C Programming: Deep C Secrets》  作者:Peter van der Linden
    • 《C陷阱与缺陷》(C Traps and Pitfalls)  作者:Andrew Koenig
    • 《Pointers on C》(C和指针)  作者:Kenneth A. Reek

6、Unix/Linux编程

  • 系统编程进阶
    • 英文名:The Linux Programming Interface
    • 简介:系统编程领域的权威著作,覆盖 1000+ 系统调用和 API,适合深入学习和长期参考。
    • 学习目标:掌握 Linux 系统级开发技术,如信号、进程间通信、多线程等。
    • 简介:通过大量实践案例(如文件操作、进程管理、信号处理)讲解系统编程,适合边学边练。
    • 学习目标:理解系统调用、文件 I/O、进程线程等核心概念。
    • 《Unix/Linux编程实践教程》
    • 《Linux/UNIX系统编程手册》(上下册)
  • 底层与网络编程
    • 英文名:UNIX Network Programming, Volume 1
    • 简介:详解网络编程核心技术(如 TCP/IP、套接字、多路复用),对数据库网络通信实现至关重要。
    • 学习目标:掌握高并发网络服务开发能力。
    • 英文名:Advanced Programming in the UNIX Environment
    • 简介:被誉为“UNIX 编程圣经”,涵盖文件系统、进程控制、信号、网络 IPC 等高级主题。
    • 学习目标:深入理解 UNIX 编程模型,为数据库底层开发打下基础。
    • 《Unix环境高级编程(APUE)》
    • 《Unix网络编程》(卷1:套接字联网API)
  • 内核与性能优化
    • 简介:从设计哲学角度讲解 UNIX 工具链和模块化思想,帮助构建高可维护性数据库系统。
    • 英文名:Linux Kernel Development
    • 简介:以简洁的代码和图示讲解内核核心模块,适合结合实践学习。
    • 学习目标:掌握内核模块开发与调试技巧。
    • 英文名:Understanding the Linux Kernel
    • 简介:解析 Linux 内核设计(如进程调度、内存管理、文件系统),适合研究数据库存储引擎等底层实现。
    • 学习目标:理解内核机制,优化数据库性能。
    • 《深入理解Linux内核》
    • 《Linux内核设计与实现》
    • 《Unix编程艺术》

7、数据库实现

  • 《PostgreSQL数据库内核分析》
  • 《数据库系统实现 - Database System Implementation》
  • 《手搓x系列, 含手搓数据库》
    • https://github.com/codecrafters-io/build-your-own-x
    • https://cstack.github.io/db_tutorial/

 以上内容基于DeepSeek-R1生成, 轻微人工调整, 感谢杭州深度求索人工智能基础技术研究有限公司 

 AI 生成的内容请自行辨别正确性, 当然也多了些许踩坑的乐趣, 毕竟冒险是每个男人的天性.