DAY04 - MySQL索引与存储引擎

基础章节-01-MySQL数据库服务中级课程 1.00 课程知识章节说明 目前在互联网的实际应用中,各个企业都会比较关注自身网站的数据信息,既要保证数据信息的安全性,同时也要保证数据存储读取效率 并且在特殊的场景下,还要对存储的数据信息进行检索和分析;因此数据库服务业务已经在各行各业应用非常的广泛 对于互联网领域的技术人员,对于数据库服务知识的掌握,也将是在求职时必备的技能,有些时候还会绝对入职的定级和薪资水平。 1.06 数据库服务语句应用(实践) 1.6.1 操作管理语言获取帮助 在数据库服务中,SQL语句涉及到的语句非常的多,在实际应用过程中也未必都能记住,因此就需要掌握获取帮助的方法; 1.6.2 操作管理语句应用实践(DDL) 利用数据定于语言(DDL),负责管理数据库的基础数据(不会对表的内容修改),比如增删库、增删表、增删索引、增删用户等; 01 数据定义语言对数据库定义 数据库中的库是数据库服务结构中的重要组成部分,一个库就像是一个excel文档,库里含有表,一个表就是一个excel的sheet; 因此,对于数据库管理操作SQL语句命令,属于比较基础的数据库操作能力,需要重点关注; 创建数据库信息: 查看数据库信息: 数据库安装完毕后,默认的数据库说明: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 # 获取帮助信息_基本帮助信息 mysql > \h # 获取帮助信息_语句分类帮助 mysql > help contents mysql > ? contents # 获取帮助信息_具体语句帮助 mysql > ? create mysql > ? create database mysql > create database oldboy; mysql > create schema oldboy; -- 创建新的数据库 mysql > create database oldboy character set utf8mb4; mysql > create database oldboy charset utf8 collate utf8_general_mysql500_ci; -- 创建新的数据库,并修改调整默认的字符编码 mysql > show databases; -- 查看是否已经创建好 mysql > show create database oldboy; -- 查看创建库的语句信息 mysql > show databases; -- 查看所有数据库信息 mysql > show databases like '%xiao%'; -- 检索查看指定的数据库信息 mysql > show create database oldboy; -- 查看创建库的语句信息 | 序号 | 数据库名称 | 作用说明 | |—|—|—| ...

2026年1月4日 · 35 分钟 · DBA Student

DAY08 - MySQL存储引擎

基础章 节-01-MySQL数据库服务中级课程 1.00 课程 知识章节说明 目前在互联 网的实际应用中,各个企业都会比较关注自身网站的数据信息,既要保证数据信息的安全性,同时也要保证数据存储读取效率 并且在特殊 的场景下,还要对存储的数据信息进行检索和分析;因此数据库服务业务已经在各行各业应用非常的广泛 对于互联网 领域的技术人员,对于数据库服务知识的掌握,也将是在求职时必备的技能,有些时候还会绝对入职的定级和薪资水平。 1.09 数据 库服务存储引擎 1.9.1 数据 库存储引擎概念 存储引擎就 是数据库服务中的文件系统,用户可以根据应用的需要选择如何存储和索引数据,是否使用事务等; 1.9.2 数据 库存储引擎种类 在各种版本 的数据库服务中,是有多种存储引擎可以应用的,以MySQL数据库服务为例,可以使用命令查看可以应用存储引擎: mysql> show engines; 引擎类型信 息输出: 在实际场景 中,99.9%都是使用innodb存储引擎,并且在最新版8.0数据库中,所有mysql数据库中的表对应的引擎也都改为了innodb; 如果在面试 环节中,面试官询问你: 列举出mysql 中支持的存储引擎种类:InnoDB、MyISAM、CSV、MEMORY; 列举出mysql 分支产品的存储引擎种类:在percone、mariadb数据库中,可能还会应用TokuDB MyRocks Rocksdb存储引擎 从特点上 可以支持innodb引擎的特性(支持事务),并且数据压缩比比较高(15倍),数据插入性能比较强(5~6倍); 以上存储 引擎就比较适合于zabbix监控类的平台,归档数据、历史数据存储业务等,数据量级比较大的情况; 监控服务 部署tokuDB存储引擎参考链接:https://www.cnblogs.com/oldboy-heqing /articles/16891210.html 1.9.3 数据 库存储引擎特性 在数据库服 务领域,大部分场景下都会使用innodb存储引擎,是因为innodb存储引擎具有一定优秀特性: 序号 特性解释说明 01 数据访问特性支持多版本并发控制特性(MVCC),支持行级锁控制并发 02 数据索引特性支持聚簇索引/辅助索引特性,可以组织存储数据和优化查询(IOT) 03 数据事务特性支持事务概念特性,可以实现数据的安全保证 04 数据缓冲特性支持多缓冲区功能,自适应hash索引(AHI) 05 数据迁移特性支持复制数据中的高级功能特性,支持数据备份恢复的热备 06 服务自愈特性支持自动故障恢复(CR-Crash Recovery) 07 数据存储特性支持数据双写机制(Double write) 数据存储有关的安全机制 ...

2026年1月8日 · 10 分钟 · DBA Student

MySQL 内部两阶段提交(2PC)深度解析

MySQL 内部两阶段提交(2PC)深度解析 一、背景与问题起源 MySQL 的存储架构分为两层: Server 层:负责 SQL 解析、优化、执行,以及 binlog 的写入 引擎层(InnoDB):负责数据的实际存储,以及 redo log 的写入 这两层各自维护一套日志体系,当一个事务提交时,需要同时保证两套日志的一致性。若没有协调机制,极易造成数据不一致。 为什么两个日志会不一致? 假设没有 2PC,先写 redo log,再写 binlog: [事务 T1 执行 UPDATE] → 写入 redo log(状态:commit) → MySQL 崩溃 💥 → binlog 未写入 恢复后: InnoDB 重放 redo log,T1 数据存在 从库通过 binlog 同步,T1 不存在 主从数据不一致! 假设没有 2PC,先写 binlog,再写 redo log: [事务 T1 执行 UPDATE] → 写入 binlog → MySQL 崩溃 💥 → redo log 未写入 恢复后: InnoDB 没有 redo log,T1 回滚(数据不存在) 从库通过 binlog 同步,T1 被执行 主从数据不一致! 正是因为这两种情况都会造成主从不一致,MySQL 引入了内部两阶段提交(Internal 2PC)。 ...

2026年3月18日 · 3 分钟 · DBA Student