MySQL的查询缓存和Buffer Pool

 更新时间:2020年11月27日 08:51:36   作者:赐我白日梦  
这篇文章主要介绍了MySQL的查询缓存和Buffer Pool,帮助大家更好的理解和学习MySQL 数据库,感兴趣的朋友可以了解下

一、Caches - 查询缓存

下图是MySQL官网给出的:MySQL架构体系图。

人们常说的查询缓存就是下图中的Cache部分。

如果将MySQL分成 Server层和存储引擎层两大部分,那么Caches位于Server层。

另外你还得知道:

当一个SQL打向MySQL Server之后,MySQL Server首选会从查询缓存中查看是否曾经执行过这个SQL,如果曾经执行过的话,之前执行的查询结果会以Key-Value的形式保存在查询缓存中。key是SQL语句,value是查询结果。我们将这个过程称为查询缓存!

如果查询缓存中没有你要找的数据的话,MySQL才会执行后续的逻辑,通过存储引擎将数据检索出来。并且查询缓存会被shared cache for sessions,是的,它会被所有的session共享。

查询缓存的缺点:

只要有一个sql update了该表,那么表的查询缓存就会失效。所以当你的业务对表CRUD的比例不相上下,那么查询缓存may be会影响应用的吞吐效率。

你可以通过参数 query_chache_type=demand禁用查询缓存。并且在mysql8.0的版本中,已经将查询缓存模块删除了。

所以,你可以根据自己的情况考虑一下有没有必要禁用个功能

二、Buffer Pool

还是那句话:如果将MySQL分成 Server层和存储引擎层两大部分,那么Buffer Pool位于存储引擎层。

其实大家都知道无论是连接池也好、缓存池也好,只要是XXX池,都是为加速而设计的。比如操作系统的文件系统为了加快数据的读取速度,每次都做低效率的磁盘随机IO设计了缓冲写机制。

而Buffer Pool就是MySQL存储引擎为了加速数据的读取速度而设计的缓冲机制。下图中的灰色部分就是BufferPool的脑图。(字是真迹,非常之秀气!)

以上就是MySQL的查询缓存和Buffer Pool的详细内容,更多关于MySQL 查询缓存和Buffer Pool的资料请关注脚本之家其它相关文章!

相关文章

  • 详解MySQL监控工具 mysql-monitor

    详解MySQL监控工具 mysql-monitor

    这篇文章主要介绍了解MySQL监控工具 mysql-monitor的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2020-07-07
  • mysql alter table修改表命令整理

    mysql alter table修改表命令整理

    这篇文章主要介绍了mysql alter table修改表命令整理的相关资料,需要的朋友可以参考下
    2016-10-10
  • 使用Rotate Master实现MySQL 多主复制的实现方法

    使用Rotate Master实现MySQL 多主复制的实现方法

    众所周知,MySQL只支持一对多的主从复制,而不支持多主(multi-master)复制
    2012-05-05
  • MySQL配置文件无法修改的解决方法(Win10)

    MySQL配置文件无法修改的解决方法(Win10)

    这篇文章主要为大家详细介绍了MySQL配置文件无法修改的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • My Sql 1067错误与编码问题的解决方案

    My Sql 1067错误与编码问题的解决方案

    My Sql 大部分都是用绿色版(解压版) 然后注册服务简单方便,但是配置文件也很让人纠结,下面小编给大家带来了My Sql 1067错误与编码问题的解决方案,感兴趣的朋友参考下吧
    2016-11-11
  • xampp中修改mysql默认空密码(root密码)的方法分享

    xampp中修改mysql默认空密码(root密码)的方法分享

    以前开发我一直都是用的phpnow做php开发环境,phpnow的特点就是一键安装,安装的时候会要求用户输入mysql的root密码。今天由于客户机器使用的xampp作为开发环境,所以碰到了修改mysql默认空密码的问题
    2014-04-04
  • MySQL数据库操作DQL正则表达式

    MySQL数据库操作DQL正则表达式

    这篇文章主要介绍了MySQL数据库操作DQL正则表达式,正则表达式描述了一种字符串匹配的规则,正则表达式本身就是一个字符串,使用这个字符串来描述、用来定义匹配规则,匹配一系列符合某个句法规则的字符串
    2022-07-07
  • Mysql 开启Federated引擎的方法

    Mysql 开启Federated引擎的方法

    FEDERATED是其中一个专门针对远程数据库的实现。一般情况下在本地数据库中建表会在数据库目录中生成相应的表定义文件,并同时生成相应的数据文件
    2012-12-12
  • 大幅优化MySQL查询性能的奇技淫巧

    大幅优化MySQL查询性能的奇技淫巧

    这篇文章主要介绍了大幅优化MySQL查询性能的方法,作者根据实际运行时间比对分析了InnoDB等几个重要的MySQL性能优化点,极力推荐!需要的朋友可以参考下
    2015-06-06
  • MySQL为例讲解JDBC数据库连接步骤

    MySQL为例讲解JDBC数据库连接步骤

    这篇文章主要为大家详细介绍了MySQL为例讲解JDBC数据库连接步骤,感兴趣的小伙伴们可以参考一下
    2016-08-08

最新评论