MySQL的查询缓存优化

MySQL的查询缓存优化

1.概述

当MySql的查询缓存开启的时候,同一条sql语句,会先从缓存里查询,如果有数据,那么返回查询结果.如果数据有被修改,那么缓存失效.因此缓存不适用于修改频繁的表.

2.操作流程

一条SQL的执行流程
在这里插入图片描述

3.查询缓存配置

  1. 查看当前mysql数据是否支持缓存
SHOW VARIABLES LIKE 'have_cache_type'
  1. 查看当前mysql是否开启了缓存
SHOW VARIABLES LIKE 'query_cache_type'
  1. 查看缓存的占用大小
SHOW VARIABLES LIKE 'query_cache_size'
  1. 查看缓存的状态变量
SHOW STATUS LIKE 'Qcache%'

在这里插入图片描述

4.开启缓存

在这里插入图片描述

5.查询缓存select选项

在这里插入图片描述

6.查询缓存失效情况

  1. SQL语句不一致的时候.要想命中查询缓存,查询的SQL语句必须要一直.
-- select大小写不一样
SQL1: select count(*) from tb_item;
SQL2: Select count(*) from tb_item;
  1. 当查询语句中有一些不确定的函数是,则不会缓存.如now(),current_date(),curdate(),curtime(),rand(),uuid(),user(),database()
SQL1: select * from tb_item where updatetime < now() limit 1;
SQL2: select user();
SQL3: select database();
  1. 不是用任何表查询语句.
-- 查询一个常量
select 'A'
  1. 查询mysql,information_schema或者performance_schema这些数据库自带的表时,不会走查询缓存.
select * from information_schema,engines;
  1. 在存储的函数,触发器或者事件的主体内执行的查询.
  2. 如果表被更改,则所有的缓存都会被删除,如INSERT,UPDATE,DELETE,TRUNCATE TEBEL,ALTER TABLE,DROP TABLE,DQOP DATABASE这些语句.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值