Mysql数据库 (五)高级特性之查询缓存

8 篇文章 0 订阅
5 篇文章 0 订阅

1、查询缓存

查询缓存就是缓存sql语句和查询结果,如果运行相同的sql,服务器直接从缓存中取,不去解析和执行sql语句。

当数据被修改后,在查询缓存中的任何相关数据均被清除,对于频繁更新的表不适合使用缓存。

set session query_cache_type = ON  设置缓存开启

set session query_cache_type = OFF  关闭查询缓存 

select @@query_cache_type;   查询缓存是否开启

show variable like ‘hava_query_cache’;  查询系统缓存是否可用

show status like 'Qcache_hits';  查询缓存累计命中数

查询缓存相关参数

hava_query_cache 是否支持查询缓存

query_cache_limit 缓存的最大结果集  默认1MB

query_cache_min_res_unit  设置分配内存块的最小体积,如果小会节省内存,但是会使系统频繁分配内存

quert_cache_size  设置查询缓存使用的总内存字节数

query_cache_type 设置是否开启查询缓存  ON 表示除了SQL_NO_CACHE的查询以外,缓存所以结果集;DEMAND表示仅缓存SQL_CACHE的查询;OFF表示关闭缓存;

2、监控维护查询缓存

flush query cache 用户整理查询缓存,不会从缓存中移除任何查询结果

reset query cache 移除查询缓存中的所有的查询结果

show status like ‘@Qcache%’;监视查询缓存的使用情况

+ ------------------------------ + ----------- + 
| Variable_name | 价值| 
+ ------------------------------ + ----------- + 
| query_cache_limit | 1048576 | 
| query_cache_min_res_unit | 4096 | 
| query_cache_size | 195035136 | 
| query_cache_type | ON | 
| query_cache_wlock_invalidate | 关闭| 
+ ------------------------------ + ----------- + 
5行集(0.00 sec)

3、优化查询缓存注意点

  • 数据库设计的时候,尽量不要使用一张比较大的表,可以使用很多小的表,这样可以提高数据查询缓存的效率
  • 在对数据库进行写操作的时候尽量一次性写入,因为逐个写入每次写入都会让数据库缓存功能失效或清理缓存数据,此时服务器可能会挂起相当长时间
  • 尽量不要在表或者数据库的基础上控制查询缓存,可以采用SQL_CACHE和SQL_NO_CACHE来决定是够使用缓存查询
  • 对于包含很多写入任务的应用程序,关闭查询缓存功能可以改进服务器性能
  • 禁用查询缓存时可以将query_cache_size参数设置为0,这样就不会消耗内存
  • 如果想少数使用查询缓存,可以设置query_cache_type设置为DEMAND,然后使用查询缓存的后面添加SQL_CACHE,不适用查询缓存的地方添加SQL_NO_CACHE

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值