一起来分析MySQL的update语句是怎样执行的

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于一条update语句是怎样执行的相关问题,执行update更新操作时,跟表有关的查询缓存会失效,所以语句就会把表上所有缓存

    本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于一条update语句是怎样执行的相关问题,执行update更新操作时,跟表有关的查询缓存会失效,所以语句就会把表上所有缓存结果都清空,下面就一起来看一下,希望对大家有帮助。

推荐学习:mysql教程

前期准备

首先创建一张表,然后插入三条数据:

简单总结一下: redo log日志是Innodb存储引擎特有的机制,可以用来应对异常恢复,Crash-safe,redo可以保证mysql异常重启时,将未提交的事务回滚,已提交的事务安全落库。

crash-safe: 有了 redo log,InnoDB 就可以保证即使数据库发生异常重启,之前提交的记录都不会丢失,这个能力称为crash-safe。

binlog(归档日志)

redo log是innoDB 引擎特有的日志。而binlog是mysql server层的日志。

其实bin log日志出现的时间比redo log早,因为最开始MySQL是没有InnoDB存储引擎的,5.5之前是MyISAM。但是 MyISAM 没有 crash-safe 的能力,binlog 日志只能用于归档。而 InnoDB 是另一个公司以插件形式引入 MySQL 的,既然只依靠 binlog 是没有 crash-safe 能力的,所以 InnoDB 使用另外一套日志系统——也就是 redo log 来实现 crash-safe 能力。