mysql之运行流程

MySQL由Server层和存储引擎层组成,Server层包括连接器、分析器、执行器。常用存储引擎InnoDB支持事务。SQL执行涉及连接器的权限验证、分析器的语法分析、优化器的选择最优执行计划以及执行器调用存储引擎。数据查询先查Bufferpool,修改操作涉及Undo/Redo日志及Binlog,用于数据恢复和备份。Binlog日志结合定期备份用于数据恢复策略。
摘要由CSDN通过智能技术生成

mysql组成

mysql一般由server层,存储引擎层组成。
server层主要包括连接器、分析器、执行器组成。
存储引擎层主要负责存储和查询数据,他是插拔试的。可以自由选择不同的存储引擎。一般会选用innodb,这是一种支持事务的高效存储引擎。

sql执行过程

1.一条sql由客户端发出,到达连接器,判断是否登录,是否有权限查询等,在到分析器进行词法和语法分析,生成语法树。再到优化器对sql进行优化,优化很复杂,会有各种计算最终以时间成本最少的sql胜出。最后到执行器,调用对应的存储引擎,执行sql。
2.先到buffer pool缓存池中去查,查不到呢,就去idb文件中查询数据所在的页数据,将一整页的数据加载到缓存池中,可以理解为是预读的原理。如果修改操做,将旧值写入undo日志中,用于回滚,更新缓存池中的数据,写redo日志,在哪页做了什么修改。意外宕机恢复缓存池中未写入磁盘的数据用的,这里是顺序写,可以提高性能。写入binlog日志,用于恢复磁盘意外删除的数据。在系统空闲的时候,以页为单位,将缓存池中的数据写入磁盘。

恢复数据:

binlog日志可用于恢复数据,可是binlog日志文件较大,不建议保存太多的文件。这时我们可以采用数据库备份和binlog一起来恢复数据。比如每天凌晨进行数据备份。binlog日志存储10天自动删除。数据恢复的前提是你要做数据备份还要开启binlog日志。

binlog日志读取

可以用mysqlbinlog查看binlog日志也可以恢复数据,参数不一样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值