当前位置:   article > 正文

mysql sqlcache_mysql中的SQL_CACHE

mysql sql_cache

mysql中的sql_cache是个容易忽视的地方,要 使用的话,必须先设置query_cache_size, 以及设置query_cache_type ,其中 query_cache_type 这个可以被设置为 (只能是数字) 选项  含义  0  (OFF, 不缓存或重新得到结果)  1  (ON, 缓存所有的结果,除了 SELECT SQL_NO_CACHE ... 查询)  2  (DEMAND, 仅缓存 SELECT SQL_CACHE ... 查询)  所以设置为1时,可以如下这样查询的话,会用到缓存 SELECT SQL_CACHE something FROM table 强制不使用缓存 SELECT SQL_NO_CACHE id,field FROM table WHERE 1 使用 FLUSH QUERY CACHE 命令,你可以整理查询缓存,以更好的利用它的内存。这个命令不会从缓存中移除任何查询。FLUSH TABLES 会转储清除查询缓存。 RESET QUERY CACHE 使命从查询缓存中移除所有的查询结果。 你可以检查查询缓存在你的 MySQL 是否被引进: mysql> SHOW VARIABLES LIKE 'have_query_cache'; +------------------+-------+ | Variable_name    | Value | +------------------+-------+ | have_query_cache | YES   | +------------------+-------+ 1 row in set (0.00 sec) 在 SHOW STATUS 中,你可以监视查询缓存的性能: 变量  含义  Qcache_queries_in_cache  在缓存中已注册的查询数目  Qcache_inserts  被加入到缓存中的查询数目  Qcache_hits  缓存采样数数目  Qcache_lowmem_prunes  因为缺少内存而被从缓存中删除的查询数目  Qcache_not_cached  没有被缓存的查询数目 (不能被缓存的,或由于 QUERY_CACHE_TYPE)  Qcache_free_memory  查询缓存的空闲内存总数  Qcache_free_blocks  查询缓存中的空闲内存块的数目  Qcache_total_blocks  查询缓存中的块的总数目  Total number of queries = Qcache_inserts + Qcache_hits + Qcache_not_cached. 查询缓存使用变长的块,因而 Qcache_total_blocks 和 Qcache_free_blocks 可能显示查询缓存的碎片。在 FLUSH QUERY CACHE 之后,只有剩余一个单独的(大的)空闲块。 注意:每个查询最小需要两个块(一个用于存储查询文本,另一个或多个用于存储查询结果)。同样的,每个被一个查询使用的表需要一个块,但是,如果有两个或更多的查询使用同一张表,仅仅只需要分配一个块就行了。 你可以使用状态变量 Qcache_lowmem_prunes 来谐调查询缓存尺寸。它计数被从缓存中移除的查询,该查询的移除是为了释放内存,以缓存新建的查询。查询缓存使用一个 least recently used (LRU) 策略来判断从缓存中移除哪个查询。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/193305
推荐阅读
相关标签
  

闽ICP备14008679号