zoukankan      html  css  js  c++  java
  • Query Cache Configuration

    Query Cache Configuration
    
    
    have_query_cache 系统变量表明 是否query cache是可用的:
    
    
    mysql> SHOW VARIABLES LIKE 'have_query_cache';
    +------------------+-------+
    | Variable_name    | Value |
    +------------------+-------+
    | have_query_cache | YES   |
    +------------------+-------+
    1 row in set (0.00 sec)
    
    
    当使用一个标准的MySQL binary,这个值总是YES,甚至如果query caching is disabled.
    
    
    其他几个系统变量控制查询cache 操作,那么可以设置在一个选项文件或者在命令行 当启动mysqld时。
    
    
    query cache 系统变量 有很多以query_cache_开头的。
    
    
    设置query cache size,设置query_cache_size 系统变量  设置为0 是关闭query cache,
    
    
    同时设置 query_cache_type=0. 
    
    默认,query cache 是关闭的,这是通过一个默认的1mb大小 和 query_cache_type 是0
    
    
    mysql> SHOW VARIABLES LIKE 'query_cache_%';
    +------------------------------+---------+
    | Variable_name                | Value   |
    +------------------------------+---------+
    | query_cache_limit            | 1048576 |
    | query_cache_min_res_unit     | 4096    |
    | query_cache_size             | 1048576 |
    | query_cache_type             | OFF     |
    | query_cache_wlock_invalidate | OFF     |
    +------------------------------+---------+
    5 rows in set (0.00 sec)
    
    减少开销,设置query_cache_type=0 如果你不使用query cache
    
    
    注意:
    
    当使用Windows 配置向导安装或者配置MySQL, 默认值对于query_cache_size 是自动配置 对于你基于不同的配置选项
    
    当使用Windows配置向导,query cache 可以是启动的( 也就是说,是一个非0值)由于选择的配置选项。
    
    
    query cache 也是通过设置query_cache_type variable设置
    
    
    当你设置 query_cache_size 为一个非0值, 记住query cache 需要一个最小40KB 分配它的结构
    
    
    query_cache_size 的值是对齐到接近1024 字节block.
    
    
    因此 显示的值可能不同于你分配的值
    
    
    如果query cache是大于0, query_cache_type 变量影响它的工作,变量可以设置为下面的值:
    
    
    1. 值为0或者OFF 防止caching或者从cached 结果中检索
    
    
    2. 值为1或者ON 启用caching 除了那些语句 以SELECT SQL_NO_CACHE 开始
    
    3. 值为2或者DEMAND  导致caching 那些语句 以SELECT SQL_CACHE开头的
    
    
    如果query_cache_size 是0, 你也应该设置query_cache_type variable为0
    
    在这种情况下, server 不需要query cache mutex,这意味着query cache 不能被启用 
    
    
    设置 全局query_cache_type value  决定query cache 行为对于所有的客户端连接在改变值后。
    
    
    单个的客户端可以控制cache 行为对于它们自己的连接通过设置 SESSION query_cache_type value.
    
    对于客户端, 一个客户端 可以禁用query cache 对于它自己的查询:
    
    
    mysql> SET SESSION query_cache_type = OFF;
    
    如果设置query_cache_type 在server 启动阶段( 相比在运行时使用一个SET 语句),只有数字值是允许的
    
    
    控制 单个 查询结果的最大值 是可以被cached,设置query_cache_limit 系统变量,默认值是1MB
    
    
    小心 不要设置 cache太大,由于需要用于threads 来锁定cache 在更新时,你可能会看到lock 冲突问题在一个大的cache里

  • 相关阅读:
    找水王续
    大道至简-阅读笔记01
    第二阶段冲刺(第二天)
    第二阶段冲刺(第一天)
    找小水王
    《大道至简》阅读笔记02——关于项目经理
    学习进度第十二周
    找水王
    学习进度第十一周
    博客园用户体验
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13349944.html
Copyright © 2011-2022 走看看