美文网首页mysql那些事儿
第三节、mysql组件2——查询缓存

第三节、mysql组件2——查询缓存

作者: 小母牛不生产奶 | 来源:发表于2018-12-23 14:15 被阅读14次

查询缓存

连接建立完成后,就可以执行语句了,这里以select * from T where ID=10; 为例子。

mysql拿到一个查询请求后,会先到查询缓存看看,之前是不是执行过这条语句。之前执行过的语句及其结果可能会以key-value对的形式,被直接缓存在内存中。key是查询的语句,value是查询的结果。

如果查询能够直接在这个缓存中找到key,那么这个value就会被直接返回给客户端;

如果语句不在查询缓存中,就会继续后面的执行阶段。执行完成后,执行结果会被存入查询缓存中。

如果查询命中缓存,mysql不需要执行后面的复杂操作,就可以直接返回结果,这个效率会很高。

查询缓存的缺点

查询缓存的失效非常频繁,只要有对一个表的更新,这个表上所有的查询缓存都会被清空。因此很可能使得缓存起来的结果还没有使用,就被一个更新全清空了。对于更新压力大的数据库来说,查询缓存的命中率会非常低。除非你的业务就是有一张静态表,很长时间才会更新一次,比如一个系统配置表,那这张表上的查询才适合使用查询缓存。

mysql中查询缓存的使用方案

mysql中提供了“按需使用”的方式。可以将参数query_cache_type设置成DEMAND,这样对于默认的SQL语句都不使用查询缓存,而对于你确定要使用查询缓存的语句,可以用SQL_CACHE显式制定,像下面这个语句一样:

select SQL_CACHE * from T where id=10;

需要注意的是,mysql8.0版本直接将查询缓存的整块功能删掉了,也就是说8.0开始彻底没有这个功能了。

相关文章

  • 第三节、mysql组件2——查询缓存

    查询缓存 连接建立完成后,就可以执行语句了,这里以select * from T where ID=10;为例子。...

  • MySQL学习——查询缓存

    MySQL查询缓存简介 MySQL查询缓存是MySQL将查询返回的完整结果保存在缓存中。当查询命中该缓存,MySQ...

  • Mysql查询优化

    查询缓存 1.可以使用如下的语句来判断MySQL是否开启了查询缓存功能: 2.如果想查看MySQL是否是读取的缓存...

  • (8)MySQL性能优化的最佳21条经验(未完待续)

    1.为查询缓存优化你的查询 某些查询语句会让MySQL不使用缓存。 MySQL的查询缓存对这个函数不起作用。像...

  • 关于MySQL优化监控参数、tomcat优化、zabbix企业级

    一、MySQL优化 1.开启查询缓存 每次查询数据不会操作表,而是先查询缓存 2.只有一行数据时,使用limit ...

  • MySQL数据库性能优化

    MySQL架构 查询缓存 查询缓存(Query Cache)原理: 缓存SELECT操作或预处理查询的结果集和SQ...

  • 查询缓存

    查询缓存原理 mysql查询缓存保存完整的查询结果,当查询命中缓存时,立刻返回结果,跳过了解析,优化和执行阶段。 ...

  • mysql的概念以及mysql架构分析

    mysql逻辑结构从图中可以看到MySQL由以下几个部分组成连接池管理服务和工具组件SQL接口查询分析器优化器缓存...

  • mysql查询缓存

    MySQL 的查询缓存是MySQL 内置的一种缓存机制,可以针对 sql 进行缓存。 1.query_caceh_...

  • MySQL查询性能优化总结

    MySQL查询性能优化总结 查询执行路径 客户端发送一条查询给MySQL服务器 服务器先检查缓存,如果命中了缓存,...

网友评论

    本文标题:第三节、mysql组件2——查询缓存

    本文链接:https://www.haomeiwen.com/subject/gycnkqtx.html