1、和查询语句一样也会走一遍连接器、解析器、预处理器、优化器、执行器
2、执行器在更新数据前,会先查看buffer pool中是否存在要更新的数据,如果不存在则从磁盘加载到buffer pool,存在则进行修改
3、innodb把旧值写入undo log
4、innodb把新值写到buffer pool
5、innodb写redo log并标记为prepare
6、执行器写bin log
7、innodb写redo log并标记为commit,这样就完成了两阶段提交,事务提交后,redo log 和bin log都要持久化到磁盘
三大日志:
undo log : 回滚日志,在异常发生时,对已经执行的操作进行回滚,保证事物的原子性
redo log: 重做日志,是innodb独有的,一旦mysql宕机了,可以使用redo log恢复数据,保证事物的持久性
bin log : 归档日志,是逻辑日志,bin log在数据库备份时可以同步数据,保证事物的一致性
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY