1 经典案例
1.1 红包雨
1.2 事务ACID
1.3 红包雨与ACID
1.3.1 原子性
1.3.2 一致性
1.3.3 隔离性
1.3.4 持久化
1.4 红包雨与高并发
1.5 红包雨与高可靠
2 发展历史
2.1 前DBMS时代
2.1.1 人工管理
2.1.2 文件系统
1950s,现代计算机的雏形基本出现。1956年IBM发布了第一个的磁盘驱动器--Model 305 RAMAC,从此数据存储进入磁盘时代。在这个阶段,数据管理直接通过文件系统来实现。
2.1.3 DBMS时代
1960s,传统的文件系统已经不能满足人们的需要,数据库管理系统( DBMS )应运而生。
DBMS:按照某种数据模型来组织、存储和管理数据的仓库。
所以通常按照数据模型的特点将传统数据库系统分成网状数据库、层次数据库和关系数据库三类。
2.2 DBMS数据模型
2.2.1 网状模型
网状数据库所基于的网状数据模型建立的数据之间的联系,能反映现实世界中信息的关联,是许多空间对象的自然表达形式。
1964年,世界上第一个数据库系统——集成数据存储(Ilntegrated Data Storage , lDS)诞生于通用电气公司。IDS是世界上第一个网状数据库,奠定了数据库发展的基础,在当时得到了广泛的应用。在1970s网状数据库系统十分流行,在数据库系统产品中占据主导地位。
2.2.2 层次模型
2.2.3 关系模型
1970年,IBM的研究员E.E.Codd博士发表了一篇名为'ARelational Model of Data for Large Shared Data BankS'的论文,提出了关系模型的概念,奠定了关系模型的理论基础。1979年Oracle首次将关系型数据库商业化,后续DB2,SAP Sysbase ASE, and nformix等知名数据库产品也纷纷面世。
2.2.4 DBMS数据模型
2.3 SQL语言
2.4 历史回顾
3 关键技术
3.1 一条SQL的一生
3.2 SQL引擎
3.2.1 Parser
3.2.2 Optimizer
基于规则的优化:
基于代价的优化:
3.2.3 Executor
火山模型:
向量化:
编译执行:
3.3 存储引擎
3.3.1 InnoDB
3.3.2 Buffer Pool
3.3.3 Page
3.3.4 B+Tree