ey_read_requests应该尽可能的低,至少是1:100,1:1000会更好
show status like 'key_read%'
show status like 'key_read%';
variables_name value
key_read_requests 6
key_reads 3
一共有6个索引读取请求,有3个请求在内存中没有找到直接从硬盘读取索引,计算索引未命中缓存的概率:
key_cache_miss_rate = key_reads/key_read_requests * 100% = 50%
key_buffer_size只对MyLSAM表起作用。即使不使用MyLSAM表,内部的临时磁盘表是MyLSAM表,也要使用该值
查询缓冲简QC:query_cache_size
使用查询缓冲,mysql将查询结果存放在缓冲区中,今后对于同样的select语句将直接从缓冲区中读取结果。
一个sql语句,只要相差哪怕是一个字符,那么这两个sql将使用不同的一个CACHE
show status like 'qcache%'
variables_name value
qcache_free_blocks 1 缓冲中相邻内存块个数,该值较大,说明内存碎片多,FLUSH QUERY CACHE会对缓存中的碎片进行整理。
qcache_free_memory 1031832 剩余的内存大小,可以较准确的观察当前系统中的quuery cache内存大小是否足够。
qcache_hits 0 有多少命中缓存。来验证我们查询缓冲的效果,数字越大,缓冲效果明显
qcache_inserts 0 多少此未命中然后插入,新来的sql请求的缓冲中未找到,不得不执行查询处理,值越大,表示查询缓存应用到的比较少,效果不理想。
qcache_lowment_prunes 0 多少条query因为内存不足而被清理出query cache。通过qcache_lowmen_prunes和qcache_free_memory相互结合,更清楚了解系统中query cache的内存大小是否真足够,是否非常频繁的出现因为内存不足而又query被换出
qcache_not_cached 1 不适合进行缓存的查询数量,这些查询不是select之类的函数。
qcache_queries_in_cache 0 当前query cache中cache得到query数量
qcache_total_blocks 1 当前query cache中block数量
查询关于query_cache的配置:show variables like 'query_cache%';
variables_name value
query_cache_limit 104876 超过此大小的查询将不缓存
query_cache_min_res_unit 4096 缓冲快大小。默认是4kB,设置值大对大数据查询有好处,但如果查询都是小数据,就造成内存碎片和浪费
query_cache_size 209715209 查询缓存大小
query_cache_type &n