MySQL 的缓存介绍

点击上方“追梦 Java”关注,一起追梦!

bba44428ff0ca1503b8389e7f0fc0c5a.png

一般情况下,我们不会用到数据库自带的缓存,所以 MySQL 默认是不开启缓存的。只有以读为主的业务,数据不变化的情况下,可以开启数据库的缓存。

查看缓存是否开启:

show variables like 'query_cache%';

queyr_cache_type:on,表示缓存开启,默认是关闭的,可以通过修改 MySQL 配置文件 my.cnf 进行调整,重启服务后生效。

query_cache_limit:1048576,表示单词查询缓存的结果集大小1M,超过1M则不会缓存。

query_cache_size,表示缓存开辟的空间大小。

查看缓存操作情况:

show status like 'Qcache%';

Qcache_hits:表示缓存命中次数

Qcache_inserts:表示缓存写入次数

缓存生效的条件是在缓存开启的情况下,执行的sql 语句字符串一模一样的时候,可以从缓存直接读取数据,但是当缓存数据相关的表存在数据变化的时候,原有的缓存就会失效,需要重新写入缓存。

MySQL 的缓存开启后,当 sql 查询语句带有 sql_no_cache 关键字或者带有函数操作或者单次查询结果集超过 query_cache_limit 的设置的值或者查询系统表时,不会用到缓存。

我们在开发中,最好不要开启缓存,将 query_cache_type 设置为off,query_cache_size 设置为 0;缓存一般会用 Redis 方案来替代。

后面将为大家介绍索引的本质与数据结构

有用的话点个在dc71e4c88a5317accae2e427f3160a00.png

你可能感兴趣的:(mysql,缓存,数据库)