MySQL数据库启动过程的简述

本文详细介绍了InnoDB存储引擎启动时的关键步骤,包括读取事物日志获取最近的检查点、遍历系统表空间进行数据同步、重做数据操作、初始化数据字典信息到内存、读取undo进行回滚以及启动InnoDB线程等。
1.读取事物日志,获取最近的checkpoint .
2.遍历系统表空间,获取double_write,检查页面,
同步数据 到独立表空间。
3.遍历该checkpoint后的事物,重做数据。
根据[space_id,page_no]及data,执行redo .
读取事物日志,及表数据文件对应的page到内存。
将事物日志中的data,应用到数据文件中。
4.读取数据字典信息。初始化到内存中。
5.遍历系统表空间,读取undo,执行rollback。
6.启动master 等innodb 线程。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15498/viewspace-2135969/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/15498/viewspace-2135969/

### MySQL 数据库组成结构 MySQL 是一种广泛使用的开源关系型数据库管理系统(DBMS),其内部结构可以分为多个层次,每个层次负责不同的功能模块。以下是 MySQL 数据库的组成结构: #### 1. 网络连接层 网络连接层是 MySQL 的最上层,负责与客户端建立连接并处理通信协议。它支持多种客户端连接方式,包括本地连接和远程连接。这一层的主要功能包括: - 接收客户端请求。 - 验证用户身份。 - 维护连接状态。 这部分功能确保了 MySQL 可以高效地与应用程序或其他工具进行交互[^4]。 #### 2. 核心服务层 核心服务层位于网络连接层之下,是 MySQL 的核心逻辑层。它包含多个子模块,具体如下: - **系统管理和控制工具**:用于管理 MySQL 实例的运行状态,例如启动、停止和监控。 - **连接池**:管理客户端连接,优化资源分配,减少频繁创建和销毁连接的开销。 - **SQL 接口**:接收 SQL 查询语句,并将其传递到后续处理阶段。 - **解析器**:将 SQL 语句解析为抽象语法树(AST),以便进一步处理。 - **查询优化器**:分析查询语句,选择最优的执行计划。 - **缓存**:存储查询结果或元数据,提高查询性能。 这些模块共同协作,确保 SQL 查询能够被快速解析、优化和执行[^4]。 #### 3. 存储引擎层 存储引擎是 MySQL 的关键组成部分,负责数据的存储和提取。MySQL 支持多种存储引擎,每种引擎都有不同的特性,适用于不同的应用场景。常见的存储引擎包括: - **InnoDB**:支持事务、外键和崩溃恢复,适合高并发场景。 - **MyISAM**:不支持事务,但查询速度较快,适合只读或低并发场景。 - **Memory**:将数据存储在内存中,提供极高的查询性能,但数据在重启后会丢失。 存储引擎通过与文件系统的交互,完成数据的物理存储和检索。 #### 4. 文件系统层 文件系统层是 MySQL 的底层组件,负责将数据和日志持久化到磁盘。它主要包括以下内容: - **数据文件**:存储表中的实际数据。 - **索引文件**:存储索引信息,加速查询操作。 - **日志文件**:记录事务操作,用于崩溃恢复和数据一致性维护。 文件系统层与存储引擎紧密协作,确保数据的安全性和完整性。 ### 示例代码:查看当前 MySQL 实例的存储引擎 ```sql SHOW ENGINES; ``` 此命令可以列出当前 MySQL 实例支持的所有存储引擎及其状态。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值