1、程序员必须掌握的数据库原理叶正盛玖章算术CEOwww.ninedata.cloud让每个人轻松用好数据和云叶正盛资深数据库与云计算领域专家,精通云计算、数据库、企业级软件研发、互联网等核心技术曾担任阿里云数据库产品管理与解决方案部总经理,阿里云技术架构与产品决策委员会核心成员。带领阿里云数据库成功进入 Gartner DBMS 魔力象限全球领导者位置,是中国基础软件的重大突破阿里巴巴去 IOE、异地多活、云计算多次技术变革核心成员带领团队构建阿里巴巴&蚂蚁集团数据库业务研发支撑体系创立了全球领先的云计算数据传输、数据管理、数据库备份、数据库自动驾驶服务等多款云计算数据库产品玖章算术CEO 创始
2、人数据库简介数据库内部结构数据库设计与SQL优化数据传输与安全管理01020304目录CONTENTS数据库简介Introduction of database操纵和管理数据库的大型软件,用于建立、使用和维护数据库提供数据采集、存储、查询、分析等功能数据库管理系统(DBMS)数据库系统数据库 VS Excel灵活的开发接口数据安全管理多用户高性能管理大数据手工记账Excel管理数据库管理数据库系统分类大图大大小小SQLSQL强强弱弱数据量NoSQL大数据OLTPOLAP数据库内部结构Internal structure of database数据库架构单机模式计算节点(RW)CPU+内存存储节
3、点本地磁盘基础架构MySQLOracleSQL ServerPostgreSQL分布式(Share nothing)计算节点(RW)CPU+内存存储节点本地磁盘计算节点(RW)CPU+内存存储节点本地磁盘MongoDBOceanBaseGreenplum ClickHouseTiDBAWS Redshift主备读写分离计算节点(RW)CPU+内存存储节点本地磁盘计算节点(R)CPU+内存存储节点本地磁盘Log同步MySQL(Master-Slave)Oracle(Active Data Guard)SQL Server(Always on)log实时传输与应用主备状态管理、读写分离分布式(sh
4、are everything)计算节点(RW)CPU+内存存储节点共享存储设备/云存储计算节点(R/RW)CPU+内存共享缓存/锁中心Oracle RAC阿里云PolarDBAWS AuroraDB2 Parallel Sysplex(大型机)DB2 pureScaleSnowflake(云存储)AWS Redshift(RA3)共享存储、RDMA缓存同步、MPP数据分片MPP、分布式事务数据库引擎内部架构外部接口(通讯协议)外部接口(通讯协议)JDBC、ODBC、OLEDB会话管理会话管理连接、状态、配置连接、状态、配置事务事务处理处理ACID锁计算引擎(查询引擎)计算引擎(查询引擎)SQL
5、SQL、存储过程、执行计划、执行算子存储过程、执行计划、执行算子存储引擎存储引擎数据、索引、分区、日志缓存管理缓存管理数据、META、SQL、排序、JOIN分布式分布式管理管理通讯 事务同步 计算存储安全安全管理管理用户 权限角色 认证加密 脱敏Extent 3Extent 2存储引擎(HEAP)块头行偏移量(ROW1:?,ROW2:?,)ROW nROW2ROW3ROW1块校验信息空闲空间block1block2block3block4block5block6block7block8Block nblock9block10Extent 1DatafileBlock 示例 Oracle(堆表)
6、SQL Server(堆表)MySQL(MyISAM)PostgreSQL存储引擎(B+TREE)Oracle SQL Server PostgreSQL MySQL MongoDB根节点叶子节点1叶子节点1.1叶子节点1.2叶子节点2叶子节点2.1叶子节点2.2数据页索引/索引表存储引擎(COLUMN-STORE)示例:超市货架管理Row group 3Row group 2Row group 1Column 1Column 2Column 3BlockBlockBlockBlockBlockBlockBlockBlock-type/path/encodings/codec-num valu