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