无论你是数据库内核研发、DBA、还是后端研发,能够手写一套自己的数据库系统,都是你突破技术发展瓶颈的有效途径。本课程将带你从架构设计 ,原理剖析,再到源码的实现,手把手带你构建一套完整的数据库系统,让你深度掌握数据库底层,及更多数据库高端技术,具备解决大量生产级数据库问题的能力,助力成为高端技术人才!
从需求分析,系统分析,到系统架构设计,以及面向未知故障场景防御式编程,灵活运用设计模式,全面深入理解数据库系统架构
掌握SQL语法解析、语义解析原理,数据库如何生成执行计划,数据库底层存储机制、事务管理机制,C/S架构网络服务,综合性提升数据库运维、调优能力
深入掌握数据库索引调优思路、瓶颈点,如何快速定位线上问题,深入挖掘针对数据库的面试题,知其然更知其所以然,有效突破你的疑难杂症问题解决能力
复用到日常开发场景中,如何运用高级数据结构、算法和设计模式,如何正确面对高并发进行编程,如何进行数据库的优化,如何理解数据库的执行计划分析慢SQL的原因等。
深度剖析数据库系统原理,将数据库几十年发展精髓拆解并呈现,端到端解析数据库系统中的各种工程trick,结合具体实现案例(MySQL/PostgreSQL/SQLite)展现系统级实现方案
手把手实现每一行代码,掌握每行代码的原理,实现代码规模巨大的数据库系统原型,开发、debug过程演示真实传授解bug的核心方法论,探讨各种工程技巧、可优化的空间,引发深层思考
评估数据库性能、扩展数据库功能特性、数据库扩展的方法和机制
分析数据库性能瓶颈、配置数据库索引、执行计划分析、分析系统硬件瓶颈
如何进行数据存储、设计端到端大数据量存储方案、评估大数据量对数据库的影响
数据库高可用的挑战、数据库WAL机制、WAL机制在数据库高可用中的应用
OS的网络模型、高效实现网络编程、数据库如何面对高并发挑战
定位数据库中故障的来源、如何对故障进行响应、进行数据库系统的高效运维
亲,您好~我们学习的是数据库的底层技术和原理,自己整体系统架构设计和分析,数据库本身是一个很复杂的技术,能够学习数据库低层技术的同学对编程语言肯定是没有障碍的,同时,必须承认的是通过C, rust等实现起来的数据库课程overhead会巨大,反而不利于学习。祝您学习愉快~
亲,您好~在编程语言的选型上,我们认真考虑过C/C++,Rust,Go和Python,经过分析认为C/C++和Rust的学习曲线陡峭,使用门槛高,用户群体少,Go语言的使用群体更少,在编程语言排行榜中尚不是top10,因此我们选择排行榜中top1流行度为14%的Python语言作为实现语言,一方面门槛很低,即便没有接触过Python的同学也可以看懂代码,另一方面是用户群体巨大,照顾到了绝大多数的潜在学员,因此,是作为我们学习数据库实现的最佳语言。为了照顾到没有Python基础的同学,我们在课程中也对高级语法和用法进行了介绍,便于拥有其他语言经验的同学无缝衔接。祝您学习愉快~
亲,您好~我们需要学习的是系统原理和代码实现,是需要超越编程语言本身,站在更高层次上去审视技术。因此,不论课程中使用什么编程语言实现数据库,都不影响大家对数据库技术的吸收,另外,有同学提到了系统性能,我们的目标是项目学习,不是实现完数据库然后售卖,这个目标理解错了。同时,如果是针对性能优化,Python有很多可以进行性能优化的手段,也可以进行编译执行,祝您学习愉快~
亲,您好~暂时没有这方面的打算,c++的受众群体更少,作为新开发数据库的语言,c++也绝非首选。相比之下,更希望灵活自由的人可用选择纯c混合部分c++功能,更希望拥抱更好的范式则应选择rust,因此c++也不是好的选择哦祝您学习愉快~
亲,您好~每一小节在做完一阶段开发后,都有伴随着的单元测试或集成测试,课程的后面还教大家进行benchmark的编写,实现一个压力测试功能,进行TPS的测量,以便进行性能提升,只是因为后续课程还没有发出来,大家不知道详情而已。祝您学习愉快~
亲,您好~即便是用Java还有人会说为什么不用python. 从工程角度上看,最好的语言是C/C++/rust,但是从教学角度和编程语言流行度上看,python最为合适,可以更方便学习理论,降低门槛祝您学习愉快~
如无法下载使用图片另存为
下载海报选课、学习遇到问题?
扫码添加指导老师 1V1 帮助你!
添加后老师会第一时间解决你的问题