zoukankan      html  css  js  c++  java
  • MySQL--query-cache

    知识准备:

      1、mysql 的query-cache是什么?

         mysql可以把执行完成的select 语句和这个select 语句对应的结果集缓存起来;下次再用调用相同的select 语句时就直接返回结果,不是又去执行一次select 语句。

               由于少了执行的这一步,所以返回结果比较快。mysql为了保证缓存的结果集与再执行一次select 语句时返回的结果集是一致的,所以;mysql会去判断select语句

               用到的表是不有变更,如果有那么缓存的结果集就作废,为了得到正确的结果mysql只能是把select 语句再执行一次;

      2、要注意的地方:

         1、query-cache 是在各个session之间共享的。

         2、query-cache 设置的过大那么它的维护成本也相应的变大,这个时候它反而会影响性能。

              3、为了确认query-cache在当前业务场景下是否有用,最好的办法是测试;而且随着时间的推移,之前有用的query-cache不一定一直有用;

              4、query-cache只有在select 语句完全相同而且表并没有变更的情况下才会从query-cache中返回结果集,注意这里的相同指的是字节序列

                   上的相同;也就是说select 和SELECT 会被当成两个不同的东西;select 和select 也有可能会被当成两个不同的东西,因为它们有可以用了

                   不同的字符集,而这一点我们人眼是看不出来的;

              5、如果一个select 查询是某一查询的子查询,那么这个select 的结果也不会被缓存,也就是说query-cache只会缓存最终结果。

              6、如果一个select 它是定义在stored function、event、trigger 中的那么它的结果集也不会被缓存。

              7、就算是有可用的query-cache 结果集,用户的权限不对的话也不会有返回。

              8、表的变更语句包括:insert ,update,delete,truncate table,alter table,drop table,drop database。

              9、如果select 中包涵有不确定函数那么结果集也不会缓存。

    配置query-cache:

        1、have_query_cache 这个variable 用来检测query_cache是否开启,注意如果是二进制包安装的mysql这个值会永远是YES;所以这并没有什么卵用。

        2、如果要关闭query_cache那么query_cache_size参数query_cache_type参数都要启动的时候设置为0。

        3、query_cache_limit 控制一个结果集的最大大小是多少。

        4、flush query cache 和reset query cache 用于清除query_cache ;它们两效果是等价的。

        5、如果一个查询走的是query-cache 那么Qcache_hits 这个status 会加1、不然Com_select会加1。

       

  • 相关阅读:
    如何使用SAP Intelligent Robotic Process Automation自动操作Excel
    OpenSAML 使用引导 IV: 安全特性
    Spring Cloud Zuul 网关使用与 OAuth2.0 认证授权服务
    微服务架构集大成者—Spring Cloud (转载)
    Spring Cloud Eureka 服务注册列表显示 IP 配置问题
    使用 Notification API 开启浏览器桌面提醒
    SignalR 中使用 MessagePack 序列化提高 WebSocket 通信性能
    配置 Nginx 的目录浏览功能
    关于 Nginx 配置 WebSocket 400 问题
    Migrate from ASP.NET Core 2.0 to 2.1
  • 原文地址:https://www.cnblogs.com/JiangLe/p/5688266.html
Copyright © 2011-2022 走看看