mysql update底层_从一个 update 语句开始,来看看 InnoDB 的底层架构原理

​上一篇文章讲到,应用程序通过数据库连接池将请求发送给 MySQL,一条普通的 select 语句,要经过连接器、查询缓存、分析器、优化器。生成执行计划后,通过执行器调用存储引擎的接口,由存储引擎来处理数据。

MySQL 是支持多种存储引擎的,比如说 MyISAM、InnoDB、Memory 等,你可以用show storage engines;来查看在用的 MySQL 支持哪些存储引擎。

在 InnoDB 之前,默认的存储引擎是 MyISAM,在 MySQL5.5 之后就改成了 InnoDB 了,可以说平时工作中 95% 的场景下使用的都是 InnoDB 存储引擎。为什么会用 InnoDB 来替换 MyISAM 呢?一个很重要的原因就是 InnoDB 支持事务,而 MyISAM 不支持。

本文就来看看 InnoDB 的底层架构到底是怎么样的,为什么要这样架构。

现在有这样一个 SQL 语句update user set name='zhangsan' where id = 11;,执行的流程和上篇文章中提到的 selelct 一样,最终由执行器来调用 InnoDB 存储引擎的接口。

Buffer Pool:MySQL 的数据存在哪里?

不知道你有没有看过 MySQL 中的数据在电脑上是怎么保存的?我们平时创建的表,其实有一个表空间的概念,在磁盘上就对应「表明.ibd」这样一个磁盘文件。你可以用show variables like 'datadir';这个命令看看存储数据的目录在哪里,就能看到这些.ibd文件了。

那数据存在磁盘上,每

你可能感兴趣的:(mysql,update底层)