全面了解mysql架构
2025-08-29 09:39:01 0 举报
AI智能生成
MySQL架构是多层的,以支持高效率和可扩展性。核心包括连接层,核心服务层,引擎层和系统文件层。连接层通过各种插件式的库实现与客户端的连接。核心服务层包含查询解析器、分析器和优化器,确保SQL语句被正确处理。存储引擎层如InnoDB和MyISAM处理数据的存储和提取,同时可插拔的特点允许选用最适合应用需求的引擎。系统文件层涉及表、索引以及日志文件等重要数据文件,管理数据的持久化。这个灵活的分层设计使得MySQL能够支撑从简单应用到高度复杂的数据处理需求。
作者其他创作
大纲/内容
一条sql如何执行
客户端
服务器
servel
连接器
管理客户端连接 一个连接一个线程 验证权限
用户名密码什么的,默认连接8小时
查询缓存
命中返回结果 但是在5。8以后的版本去掉了(命中率低,影响并发性能)
分析器
词法分析 ,语句分析
优化器
执行计划生成,索引选择
执行器
操作引擎,返回结果
会做个权限校验 (因为有触发器、存储过程 )只有在运行才能确定
binlog日志
会记录 修改记录 (U I D)但是不会记录查询操作
主要用于恢复和复制操作
主要用于恢复和复制操作
存储引擎
lnnoDB
这个是mysql默认的数据库引擎 (支持多种)
支持事务,行级锁和外键事务 , 有自己的日志系统 redolog重做日志和undo log撤销日志
redo日志保证事务的持久性,在数据库崩溃后用于恢复数据,undo log 日志用于支持事务的原子性
和多版本的并发控制(MVCC)
redo日志保证事务的持久性,在数据库崩溃后用于恢复数据,undo log 日志用于支持事务的原子性
和多版本的并发控制(MVCC)
修改语句
涉及两个日志 redo log(重做日志) 及bin log(归档日志)
有点类似账本 预写试日志 bing 是逻辑日志 redo 是记录数据的修改 恢复数据用 bing 日志
修改操作会记录到redo log 在写入磁盘
数据库宕机 redo 和bing 日志都成功 才能提交事务 (redo 有两个标记一个是prepare 和commit(有他提交事务) 两个标记|
如何只有 prepare 需要判断 bing事务是否存在并完整,存在提交事务)
如何只有 prepare 需要判断 bing事务是否存在并完整,存在提交事务)
什么时候存 redo日志 会在执行语句提交事务后会存 没有提交前是在缓存里
mysql两段提交机制
在保存 bing 和redo日志 会有一个xid字段值确保一致
修改语句的执行步骤
问题
为什么 mysql缓缓去掉了。但是存储引擎还留着
redo 会吧数据更新到缓存 缓存存的要修改 的一行数据吗
0 条评论
下一页