既然没有命中,肯定要有com_select,读之后要加到缓存中,要有qcache_inserts,既然是这样,我不解的是应该一次com_select就对应一次qcache_inserts阿,为什么qcache_inserts...原来是这样的: The total number of SELECT queries is given by this formula: Com_select + Qcache_hits+ queries...with errors found by parser The Com_select value is given by this formula: Qcache_inserts + Qcache_not_cached...(命中) + 解析错误的,其中的com_select等于qcache_inserts(失效) + qcache_not_cache + 权限检查错误的。...也就是说qcache_inserts这个计数不是表示没被缓存而进行的读,而是缓存失效而进行的读,没被缓存和缓存失效是两个概念,分别计数,但都会引起com_select。
| 1 | | Qcache_free_memory | 1031832 | | Qcache_hits | 0 | | Qcache_inserts...Qcache_free_memory | 1031832 | | Qcache_hits | 0 | | Qcache_inserts |...0 | | Qcache_lowmem_prunes | 0 | | Qcache_not_cached | 4 | | Qcache_queries_in_cache... | 1 | | Qcache_free_memory | 1031832 | | Qcache_hits | 0 | | Qcache_inserts... | 1 | | Qcache_free_memory | 1030296 | | Qcache_hits | 1 | | Qcache_inserts
3.从查询缓存中移除所有查询缓存 RESET QUERY CACHE; 4.查询缓存性能监控 SHOW STATUS LIKE 'Qcache%' ?...输出说明: Qcache_free_blocks:查询缓存中的空闲内存块 Qcache_free_memory:查询缓存的空闲内存数量 Qcache_hits:查询缓存命中数量 Qcache_inserts...:添加到查询缓存的查询的数量(不是表示没被缓存而进行的读,而是缓存失效而进行的读) Qcache_lowmen_prunes:因内存太低,从缓存查询中删除的查询的数量 Qcache_not_chached...:未缓存查询的数量(未被缓存、因为querey_cache_type设置没被缓存) Qcache_queries_in_cache:缓存查询中注册的查询的数量 Qcache_total_blocks...,Com_select表示未命中缓存数,Qcache_hits表示缓存命中数 Com_select计算公式: Qcache_inserts+Qcache_not_cached+权限检查错误数(queries
) / 查询次数 (Com_select) 通过缓存写入率, 写入率 = 缓存写入次数 (Qcache_inserts) / 查询次数 (Qcache_inserts) 通过 命中-写入率 判断, 比率...= 命中次数 (Qcache_hits) / 写入次数 (Qcache_inserts), 高性能MySQL中称之为比较能反映性能提升的指数,一般来说达到3:1则算是查询缓存有效,而最好能够达到10:...: 缓存池中空闲块的个数 Qcache_free_memory: 缓存中空闲内存量 Qcache_hits: 缓存命中次数 Qcache_inserts: 缓存写入次数 Qcache_lowmen_prunes...: 因内存不足删除缓存次数 Qcache_not_cached: 查询未被缓存次数,例如查询结果超出缓存块大小,查询中包含可变函数等 Qcache_queries_in_cache: 当前缓存中缓存的...SQL数量 Qcache_total_blocks: 缓存总block数 减少碎片策略 选择合适的block大小 使用 FLUSH QUERY CACHE 命令整理碎片.这个命令在整理缓存期间,会导致其他连接无法使用查询缓存
%';select sql_cache * from member where id=1;show status like 'qcache_q%';select sql_cache * from member...where id=1;show status like 'qcache_q%'; 例 10.1....| 1 |+-------------------------+-------+1 row in set (0.01 sec) 我们可以看到 Qcache_queries_in_cache 值由...member where id=1;show status like 'qcache_q%'; 例 10.2....qcache_q%'; 例 10.3.
| Value | +-------------------------+---------+ | Qcache_free_blocks | 1 | | Qcache_free_memory...| 1031360 | | Qcache_hits | 0 | | Qcache_inserts | 0 | | Qcache_lowmem_prunes...| 0 | | Qcache_not_cached | 2002 | | Qcache_queries_in_cache | 0 | | Qcache_total_blocks...通过“Qcache_lowmem_prunes”和“Qcache_free_memory”相互结合,能够更清楚的了解到我们系统中Query Cache 的内存大小是否真的足够,是否非常频繁的出现因为内存不足而有...Qcache_queries_in_cache:当前Query Cache 中cache 的Query 数量; Qcache_total_blocks:当前Query Cache 中的block 数量;
结果项说明 Qcache_free_blocks 缓存中相邻内存块的个数,数目大说明可能有碎片 使用 FLUSH QUERY CACHE 会对缓存中的碎片进行整理,从而得到一个空闲块 Qcache_free_memory...缓存中的空闲内存 Qcache_hits 多少次命中,通过这个参数可以查看到querycache的基本效果 Qcache_inserts 多少次未命中然后插入,通过“Qcache_hits”...和“Qcache_inserts”两个参数我们就可以算出Query Cache 的命中率了 Query Cache 命中率 = Qcache_hits / ( Qcache_hits + Qcache_inserts...) Qcache_lowmem_prunes 因为内存不足而被清除出query cache 的query数量 通过Qcache_lowmem_prunes 和 Qcache_free_memory...例如一些查询使用了now()之类的函数 Qcache_queries_in_cache 当前Query Cache 中cache 的Query 数量 Qcache_total_blocks 当前
| 83 || Qcache_free_memory | 19811040 | | Qcache_hits | 3108196 || Qcache_inserts...| 757254 | | Qcache_lowmem_prunes | 20720 || Qcache_not_cached | 47219 | |...Qcache_queries_in_cache | 47 || Qcache_total_blocks | 276 | +------------------------...Qcache_free_memory:缓存中的空闲内存。 Qcache_hits:每次查询在缓存中命中时就增大 Qcache_inserts:每次插入一个查询时就增大。...Qcache_queries_in_cache:当前缓存的查询(和响应)的数量。 Qcache_total_blocks:缓存中块的数量。
| Qcache_free_memory | 0 | 在query_cache_size设置的缓存中的空闲的内存 | Qcache_hits | 0...| 查询缓存区已满而从其中溢出和删除的查询结果的个数 | Qcache_not_cached | 0 | | Qcache_queries_in_cache | 0 |...| 1 | | Qcache_free_memory | 268414376 | | Qcache_hits | 0 | |...Qcache_inserts | 2 | | Qcache_lowmem_prunes | 0 | | Qcache_not_cached...| 3 | | Qcache_queries_in_cache | 2 | | Qcache_total_blocks | 7 | +------
Qcache_lowmem_prunes 这是一个状态变量(show status),当缓存空间不够需要 释放旧的缓存时,该值会自增...Qcache_free_memory 缓存中的空闲内存。 Qcache_hits 每次查询在缓存中命中时就增大。 Qcache_inserts 每次插入一个查询时就增大。...Qcache_lowmem_prunes 缓存出现内存不足并且必须要进行清理以便为更多查询提供空 间的次数。...Qcache_not_cached 不适合进行缓存的查询的数量,通常是由于这些查询不是 SELECT 语句。...Qcache_queries_in_cache 当前缓存的查询(和响应)的数量。 Qcache_total_blocks 缓存中块的数量。
Value | +-------------------------+----------+ | Qcache_free_blocks | 1 | | Qcache_free_memory...| 1031360 | | Qcache_hits | 0 | | Qcache_inserts | 0 | | Qcache_lowmem_prunes...| 0 | | Qcache_not_cached | 10302865 | | Qcache_queries_in_cache | 0 | | Qcache_total_blocks...查询缓存碎片率 = Qcache_free_blocks / Qcache_total_blocks * 100% 如果查询缓存碎片率超过20%,可以用FLUSH QUERY CACHE整理缓存碎片,...查询缓存命中率 = (Qcache_hits – Qcache_inserts) / Qcache_hits * 100% 如果Qcache_lowmem_prunes的值非常大,则表明经常出现缓冲不够的情况
| Qcache_free_memory | 23147296 | 缓存中的空闲内存总量。...| Qcache_total_blocks | 10796 | 缓存中块的数量。...(缓存失效) + qcache_not_cache(没有缓存) + 权限检查错误的查询。...可以根据上面的数据,来查看我们的缓存设置是否合理: 缓存碎片率 = Qcache_free_blocks / Qcache_total_blocks * 100% 如果碎片率太高,比如20% ,可以FLUSH...Mysql的查询缓存命中率,一般用如下数据进行计算: 命中率 ≈ qcache_hits / (qcache_hits + com_select) 有一些提高命中率的技巧:1:查询和存储的字符集相同 。
根据 命中率(Qcache_hits/(Qcache_hits+Qcache_inserts)*100))进行调整,一般不建议太大,256MB可能已经差不多了,大型的配置型静态数据可适当调大 mysql...Qcache_lowmem_prunes 281680433 Qcache_not_cached 79740667 Qcache_queries_in_cache...Qcache_free_memory 缓存中的空闲内存。 Qcache_hits 每次查询在缓存中命中时就增大。 Qcache_inserts 每次插入一个查询时就增大。...Total number of queries = Qcache_inserts + Qcache_hits + Qcache_not_cached....查询命中率=Qcache_hits -Qcache_inserts /Qcache_hits 查询插入率=Qcache_inserts / Com_select; 未插入率 = Qcache_not_cached
MySQL 提供了一系列的 Global Status 来记录 Query Cache 的当前状态,具体如下: Qcache_free_blocks:目前还处于空闲状态的 Query Cache 中内存...Block 数目 Qcache_free_memory:目前还处于空闲状态的 Query Cache 内存总量 Qcache_hits:Query Cache 命中次数 Qcache_inserts:...向 Query Cache 中插入新的 Query Cache 的次数,也就是没有命中的次数 Qcache_lowmem_prunes:当 Query Cache 内存容量不够,需要从中删除老的 Query...Cache 以给新的 Cache 对象使用的次数 Qcache_not_cached:没有被 Cache 的 SQL 数,包括无法被 Cache 的 SQL 以及由于 query_cache_type...设置的不会被 Cache 的 SQL Qcache_queries_in_cache:目前在 Query Cache 中的 SQL 数量 Qcache_total_blocks:Query Cache
| 1 | | Qcache_free_memory | 134200384 | | Qcache_hits | 0 | | Qcache_inserts | 0 | | Qcache_lowmem_prunes...| 0 | | Qcache_not_cached | 3577291 | | Qcache_queries_in_cache | 0 | | Qcache_total_blocks | 1 |...Qcache_free_memory:缓存中的空闲内存。 Qcache_hits:表示有多少次命中。 Qcache_inserts:每插入一个查询时就会增大。...Qcache_lowmem_prunes:表示有多少条Query因为内存不足而被清除出Query Cache。 Qcache_not_cached:不适合进行缓存的查询数量。...Qcache_queries_in_cache:当前缓存的查询(和响应)数量。 Qcache_total_blocks:缓存中块的数量。
| 22756 | | qcache_free_memory | 76764704 | | qcache_hits | 213028692...| | qcache_inserts | 208894227 | | qcache_lowmem_prunes | 4010916 | | qcache_not_cached...qcache_free_memory:缓存中的空闲内存。 qcache_hits:每次查询在缓存中命中时就增大 qcache_inserts:每次插入一个查询时就增大。...qcache_queries_in_cache:当前缓存的查询(和响应)的数量。 qcache_total_blocks:缓存中块的数量。...查询缓存命中率 = (qcache_hits - qcache_inserts) / qcache_hits * 100% 示例服务器 查询缓存碎片率 = 20.46%,查询缓存利用率 = 62.26%
query_cache_type'; 查看查询缓存的占用大小 : SHOW VARIABLES LIKE 'query_cache_size'; 查看查询缓存的状态变量: SHOW STATUS LIKE 'Qcache...%'; 各个变量的含义如下: 参数含义Qcache_free_blocks查询缓存中的可用内存块数Qcache_free_memory查询缓存的可用内存量Qcache_hits查询缓存命中数...Qcache_inserts添加到查询缓存的查询数Qcache_lowmen_prunes由于内存不足而从查询缓存中删除的查询数Qcache_not_cached非缓存查询的数量(由于 query_cache_type...设置而无法缓存或未缓存)Qcache_queries_in_cache查询缓存中注册的查询数Qcache_total_blocks查询缓存中的块总数 2.4 开启查询缓存 MySQL的查询缓存默认是关闭的
Slave_heartbeat_period Slave_last_heartbeat Slave_received_heartbeats Slave_retried_transactions, Slave_running Qcache_free_blocks...Qcache_free_memory Qcache_hits Qcache_inserts Qcache_lowmem_prunes Qcache_not_cached Qcache_queries_in_cache...Qcache_total_blocks Innodb_available_undo_logs status remove的函数 JSON_APPEND() --> JSON_ARRAY_APPEND(
根据MySQL 用户手册,使用查询缓冲最多可以达到238%的效率.通过调节以下几个参数可以知道query_cache_size 设置得是否合理 Qcache inserts Qcache hits...Qcache lowmem prunes Qcache free blocks Qcache total blocks Qcache_lowmem_prunes 的值非常大,则表明经常出现缓冲不够的情况...= 1 得到如下状态值: Qcache queries in cache 12737 表明目前缓存的条数 Qcache inserts 20649006 Qcache hits 79060095...看来重复查询率还挺高的 Qcache lowmem prunes 617913 有这么多次出现缓存过低的情况 Qcache not cached 189896 Qcache free memory...18573912 目前剩余缓存空间 Qcache free blocks 5328 这个数字似乎有点大 碎片不少 Qcache total blocks 30953 如果内存允许32M 应该要往上加点
查看服务器query_cache使用情况: show global status like 'qcache%'; 参数解释: Qcache_free_blocks:缓存中相邻内存块的个数。...Qcache_free_memory:缓存中的空闲内存。 Qcache_hits:每次查询在缓存中命中时就增大 Qcache_inserts:每次插入一个查询时就增大。...Qcache_lowmem_prunes:缓存出现内存不足并且必须要进行清理以便为更多查询提供空间的次数。这个数字最好长时间来看;如果这个数字不断增长,表示可能碎片非常严重,或内存很少。...Qcache_not_cached:不适合进行缓存的查询的数量,通常是由于这些查询不是 SELECT 语句或者用了now()之类的函数。...Qcache_queries_in_cache:当前缓存的查询(和响应)的数量。 Qcache_total_blocks:缓存中块的数量。 9.
领取专属 10元无门槛券
手把手带您无忧上云