日期:2014-05-16  浏览次数:20896 次

mysql5.5.25 源码阅读---query cache

SQL_CACHE
   先从query cache 查找,
   若有直接返回query cache 中结果
   若没有再进行select,并且将结果放在query cache中(前提是满足放入query cache条件)
  
SQL_NO_CACHE
   不检查query cache,直接进行查询
       sql_cache.cc
       Query_cache::send_result_to_client(THD *thd, char *sql, uint query_length)
         if (query_length > 20 && has_no_cache_directive(&sql[i+6]))
         {
            DBUG_PRINT("qcache", ("The statement has a SQL_NO_CACHE directive"));
            goto err;
         }
   不把结果放在query cache中


相关命令
flush query cache :整理query cache碎片,并不会移除query cache内容
reset query cache / FLUSH TABLES :清空query cache内容