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文件了。

那数据存在磁盘上,每

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值