加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL优化方向之查询缓存的介绍,提升我们的数据库性能

发布时间:2020-12-12 03:00:02 所属栏目:MySql教程 来源:网络整理
导读:《MySQL优化方向之查询缓存的介绍,提升我们的数据库性能》要点: 本文介绍了MySQL优化方向之查询缓存的介绍,提升我们的数据库性能,希望对您有用。如果有疑问,可以联系我们。 MySQL的查询缓存是我们优化MySQL数据库的一个方向,我们有需要介绍一下,看看MyS

《MySQL优化方向之查询缓存的介绍,提升我们的数据库性能》要点:
本文介绍了MySQL优化方向之查询缓存的介绍,提升我们的数据库性能,希望对您有用。如果有疑问,可以联系我们。

MySQL的查询缓存是我们优化MySQL数据库的一个方向,我们有需要介绍一下,看看MySQL的查询缓存是什么?它是怎么工作的?什么时候不会走查询缓存?以及为什么查询缓存不生效等等问题.

查询缓存是什么

将某个select语句和相应的查询结果缓存起来,如果以后有相同的select语句的话,就直接从查询缓存中读取结果,不必要再执行表查询.

这里指的是同一个select语句.

仅仅对select语句有效.

因为不必要执行表查询,所以更快.

它不会返回过时的数据,如果数据有改变,整个查询缓存将被冲洗.

仅仅适用于以读为主的应用,频繁写应用不得当.


反省MySQL数据库是否支持查询缓存

在命令行登录MySQL服务器之后,执行SHOW VARIABLES LIKE 'have_query_cache'语句就能够看到你的MySQL服务器是否开启了查询缓存,参考下图,如果为yes表现支持查询缓存,否则表现不支持查询缓存,该值有0,1,2三种.

MySQL优化方向之查询缓存的介绍,提升我们的数据库性能

0表现不支持.

1表现能够缓存的都缓存,除非你指定SQL_NO_CACHE的除外.

2表现仅仅明确指定了SQL_CACHE的才会缓存.


开启SQL查询缓存

SELECT SQL_CACHE 字段名1,字段名2 FROM 表名 WHERE

SELECT SQL_NO_CACHE 字段名1,字段名2 FROM 表名 WHERE

前者是开启,后者是不开启查询缓存


不缓存的SQL语句特征

如果我们的SELECT语句里面包括有一些动态实时的函数,那么这个select语句将无法被查询缓存缓存起来.

now函数 表现现在的时间,是一个动态的值,查询缓存肯定无法使用,还有rand函数也是一样,是一个随机返回值,还有found_rows函数,返回的是行数,会变,还有很多同类的函数,查询缓存都是不生效的.


为什么缓存不了

除了前面说的SQL_NO_CACHE外,还有两个配置参数控制着查询缓存,一个是query_cache_limit和query_cache_size,前者控制当查询成果大于多少的时候将不会被缓存起来,而后者控制查询缓存最大的尺寸.


查询缓存什么时候失效

如果我们的相应成果有改变,那么查询缓存将失效,或者我们人为手动执行了下面这个SQL语句,那么所有的查询缓存将失效:

FLUSH QUERY CACHE

相应的视频请点击:MySQL性能提升计划之查询缓存介绍

《MySQL优化方向之查询缓存的介绍,提升我们的数据库性能》是否对您有启发,欢迎查看更多与《MySQL优化方向之查询缓存的介绍,提升我们的数据库性能》相关教程,学精学透。编程之家PHP学院为您提供精彩教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读