buffer pool和查询缓存的区别

在学习buffer pool的时候我产生了疑问,buffer pool和查询缓存是一个东西吗?

结论:不是一回事。

buffer pool

buffer pool我之前介绍过,它的出现是为了提高查找效率,缓存磁盘上的数据页。

buffer pool虽说是内存中的一段连续空间,但是它实际上是介于存储引擎和数据层之间。可以把这个连续的空间看成是磁盘,先去这个“磁盘空间”去找,如果找不到再去实际的磁盘寻找,找到后存到buffer pool。

查询缓存

看上图,查询缓存是一个sql经历的第一个阶段,sql语句都会生成一个hash值作为key,查询结果就是value,有结果返回,没有结果生成hash值,进入语法解析阶段、优化器生成执行计划。

buffer pool在查询流程中的作用

有一个冷知识,数据和索引都是B+树进行管理的,B+树的根节点都是放在内存中的,也就是放在Buffer pool中。之后二分法找到下一层的非叶子节点,存到buffer pool进行操作,当然如果数据页缓存在buffer pool中就直接使用buffer pool中的缓存页,减少了磁盘的io交互。

总结

查询缓存和BufferPool完全是两个东西。查询缓存位于server层,BufferPool是Innodb数据引擎中的核心组件。

相关推荐

  1. 缓存协商缓存区别

    2024-01-27 04:58:04       40 阅读
  2. 缓存协商缓存区别

    2024-01-27 04:58:04       40 阅读
  3. 固态硬盘缓存缓存区别

    2024-01-27 04:58:04       58 阅读
  4. 浏览器强缓存缓存主要区别

    2024-01-27 04:58:04       45 阅读
  5. (十三)强缓存协商缓存区别

    2024-01-27 04:58:04       47 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-27 04:58:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-27 04:58:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-27 04:58:04       82 阅读
  4. Python语言-面向对象

    2024-01-27 04:58:04       91 阅读

热门阅读

  1. XJTU大学计算机I C语言编程题 第七周

    2024-01-27 04:58:04       54 阅读
  2. 20240126 大模型快讯

    2024-01-27 04:58:04       48 阅读
  3. RISC-V架构的了解

    2024-01-27 04:58:04       47 阅读
  4. Docker:docker run的 --rm 选项

    2024-01-27 04:58:04       57 阅读
  5. 力扣2859-计算k置位下标对应元素的和

    2024-01-27 04:58:04       54 阅读
  6. 最近在对接电商供应链,说说开放平台API接口

    2024-01-27 04:58:04       52 阅读
  7. MySQL数据库的一些缩写含义

    2024-01-27 04:58:04       49 阅读
  8. 跨语言编程:在C#应用程序中调用Python

    2024-01-27 04:58:04       42 阅读
  9. laspy + open3d 实现.las点云可视化

    2024-01-27 04:58:04       51 阅读
  10. vue的this指向问题

    2024-01-27 04:58:04       48 阅读