【数据库内核】01——从0到1数据库内核实战,挑战数据库领域最强大脑 1

简介: 【数据库内核】01——从0到1数据库内核实战,挑战数据库领域最强大脑

1、数据库系统概述

1.1 给入门小白洗洗脑

1.1.1 为什么学习数据库内核

  • 了解底层
  • 出故障救火
  • 数据库开发不吃青春饭,越老越吃香
  • 未来趋势,国家要防止数据库被老美卡脖子

1.1.2 数据库开发入门难吗

不难。可以从简单的MiniOB的开始,

MiniOB只有几万行,

SQLLite只有二十多万行源码,

还有大神早就写了经典教材

《数据库系统实践》

《数据库系统概念》

而且你们还有我帮你们踩坑。

1.1.3 这篇文章教你什么内容

课程分为两部分。入门与进阶。这篇先带大家入门,该专栏后续还有很多文章带大家深入。


bb2fc5276719436a938cec4ae1d9d313.png

进阶超级超级硬核的~


da19a12e9aad4a4f9799d36461c50a43.png

点击关注不迷路。

1.2 数据库的那些事儿

1.2.1 没有数据库真的让开发头大


6515537b37f44b3a8914f191b5f7d28e.png


a3f460e0b2ee4f4e8f64b202ea94c6aa.png


1.2.2 数据库要解决什么问题

最大的问题归根结是没有进行抽象。

7bee9e6c2f55495fbec2724bfc3f67ab.png

1.2.3 早期的数据库系统


3c641b7a640d4b29946dc5f5839dba30.png

淘汰原因:描述的世界,结构太死板,不灵活。不够简单,无法提供抽象简单数据库语言,根本原因!

1.2.4 现代主流数据库系统

关系型数据库


2f9d6ca5b592467280e351e5ab121c31.png

关系间可以相互转化,不会丢失语义。

逻辑层关系代数,物理层用关系存储清晰。

NoSQL

解决存储容量不能线性扩展的痛点:提出分布式支持数据库无限线性

底层数据模型:K-V,不需要预定义结构


4b7113731dd54b0b9658013e0ee412cf.png

1.2.5 数据库简史

数据库是图灵奖最多的领域,膜拜数据库之神

e043af3dde4647318cd50da4f0f6b403.png

数据库简史

e67ca36ae1fc45288d13f27ac03f5ac7.png

MongoDB:在文档上解决特别好

OceanBase:NewSql + HTAP

Amazon Aurora:云上数据库系统

1.2.6 数据库架构


edfc3352679a47b493b0ff05bf7b4e5f.png

parser:词法分析、语法分析(生成语法树)。

Query result cache:直接对SQL进行硬解析。

resolver:对部分变量进行替换,生成语法树。

plan chache:命中plan chache成功则将其丢到物理执行器Executor中,否则扔到优化器里去

Transformer:进行逻辑优化,比如索引下推。

Optimizer:进行代价优化,从众多物理执行计划选出最优。工业中与transformer进行混杂,选择相对优的执行计划(为了节约时间、不一定会选最优)。

code generator:将多个算子merge,生成更加高效的算子。

日志恢复分为物理日志和逻辑日志。

8698f45f807d4f9eb320a2b8e4ab0c10.png

6f8f9f8e0f754da0974535b81f4b0bfa.png

B+树,平衡二叉树,读写性能均衡算法


adba2a693df94fcd97287e574d3c2429.png


e4936918209943ebb848de436d0a8c57.png

2 MiniOB——从底层深入了解数据库实现

2.1 MiniOB介绍

2.1.1 数据库系统学习的难点

image.png

2.1.2 MiniOB架构


7ba078fcc028418f9ecf9f69e4cb945f.png


相关文章
|
2月前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
410 7
|
人工智能 关系型数据库 OLAP
聚光灯已就位!阿里云瑶池数据库邀你征战Cursor首届实战征文大赛
阿里云AnalyticDB携手Cursor中文社区,正式发起首届实战征文大赛!我们诚邀开发者融合Cursor的智能编程能力与AnalyticDB PostgreSQL提供的Supabase服务进行项目开发,让优秀项目被专家看见、被机遇拥抱!
|
6月前
|
关系型数据库 MySQL 数据库连接
Django数据库配置避坑指南:从初始化到生产环境的实战优化
本文介绍了Django数据库配置与初始化实战,涵盖MySQL等主流数据库的配置方法及常见问题处理。内容包括数据库连接设置、驱动安装、配置检查、数据表生成、初始数据导入导出,并提供真实项目部署场景的操作步骤与示例代码,适用于开发、测试及生产环境搭建。
312 1
|
7月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
6月前
|
SQL 数据建模 关系型数据库
别光知道存数据库了,数据建模才是王道!(入门指南+实战代码)
别光知道存数据库了,数据建模才是王道!(入门指南+实战代码)
1080 4
|
3月前
|
存储 数据库 开发者
Python SQLite模块:轻量级数据库的实战指南
本文深入讲解Python内置sqlite3模块的实战应用,涵盖数据库连接、CRUD操作、事务管理、性能优化及高级特性,结合完整案例,助你快速掌握SQLite在小型项目中的高效使用,是Python开发者必备的轻量级数据库指南。
363 0
|
9月前
|
存储 运维 监控
百万指标,秒级查询,零宕机——时序数据库 TDengine 在 AIOps 中的硬核实战
本篇文章详细讲述了七云团队在运维平台中如何利用 TDengine 解决海量时序数据存储与查询的实际业务需求。内容涵盖了从数据库选型、方案落地到业务挑战及解决办法的完整过程,特别是分享了升级 TDengine 3.x 时的实战经验,给到有需要的小伙伴参考阅读。
387 1
|
3月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
171 3
|
3月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
3月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
852 152