key_read_requests表示从缓存读索引的请求数,key_reads表示没有在缓存中找到索引,从硬盘上读取索引的次数,这里就是为什么使用索引作为where子句的关键字,速度快的原因,如果key_reads过高,就需要调大Key_buffer_size。
Handler_read_key \\根据索引读第一行的请求数,该值高,说明索引设置正确
Handler_read_rnd \\根据固定位置读一行的请求数。如果你正执行大量查询并需要对结果进行排序该值较高。你可能使用了大量需要MySQL扫描整个表的查询或你的连接没有正确使用键
Handler_read_rnd_next \\在数据文件中读下一行的请求数。如果你正进行大量的表扫描,该值较高。通常说明你的表索引不正确或写入的查询没有利用索引,这个值
要注意一下,不是做一次全表扫描纪录一次,比如做一次全表扫描有多少行,这里就会增加多少数字,表连接和子查询有多条结果,也会累计,所以不一定是全表扫描,具体问题具体分析。
Created_tmp_disk_tables \\如果此值较大,证明tmp_table_size较少,需要调大。
Created_tmp_files
Created_tmp_tables
open_table_definitions \\缓存的.frm文件的数量
open_tables \\当前打开了多少表
opened_tables \\一共打开了多少表
opened_table_definitions \\总共缓存过多少.frm文件
如果opened_tables和opened_table_definitions的数量过大,那么证明需要优化table_open_cache
table_open_cache \\该值设置缓存.frm表定义的数量
threads_cached \\已经缓存的连接线程数
threads_connected \\当前正处于连接的线程数,和 show processlist数量相等
threads_created \\一共创建过多少个连接线程,如果远远大于threads_connected,并且threads_cached=thread_cache_size的值,那么需要调大thread_cache_size的值
Table_locks_immediate \\立即获得表锁
Table_locks_waited \\等待表锁,如果太高,就要考虑优化程序结构,语句,或者替换存储引擎
Sort_merge_passes \\排序算法已经执行的合并的数量。如果这个变量值较大,应考虑增加sort_buffer_size系统变量的值。
Sort_range \\在范围内执行的排序的数量。
Sort_rows \\已经排序的行数。
Sort_scan \\通过扫描表完成的排序的数量
query_cache_type是查询缓存的开关,此参数有三个值,分别的含义如下:
0也就是off //此值设定服务器不支持查询缓存,select不会从缓存中检索结果也不会把结果写到缓存中。
1也就是on //如果要启用,通常设置这个值,select语句默认会从缓存中检索结果页会把查询的结果放到缓存中,除非select语句包含select sql_no_cache
2 //该值告诉服务器只对使用了 select sql_cache的语句使用查询缓存功能。
以下这些是查询缓存的相关设置值。
mysql> show global variables like 'query%';
+------------------------------+-----------+
| Variable_name | Value |
+------------------------------+-----------+
| query_alloc_block_size | 8192 |
| query_cache_limit | 1048576 | \\查过这个值不缓存
| query_cache_min_res_unit | 4096 |
| query_cache_size | 102400000 | \\查询缓存可以使用的内存大小
| query_cache_type | ON | \\是否启用查询缓存
| query_cache_wlock_invalidate | OFF |
| query_prealloc_size | 8192 |
+------------------------------+-----------+
以下这些是查询缓存的状态值。
mysql> show global status like 'qcache%';
+-------------------------+-----------+
| Variable_name | Value |
+-------------------------+-----------+
| Qcache_free_blocks | 1153 | \\空闲的query cache块
| Qcache_free_memory | 100094608 | \\空闲的query cache内存
| Qcache_hits | 259503 | \\查询缓存的命中数量--重要
| Qcache_inserts | 357422 | \\从缓存查询结果没命中的次数
| Qcache_lowmem_prunes | 0 | \\由于cache_size过小,结果从内存中被删 除的次数
| Qcache_not_cached | 5187 | \\没有被缓存的次数
| Qcache_queries_in_cache | 1474 | \\缓存中包含的结果数量,如果此值和Qcache_lowmem_prunes值较小,qcache_inserts很大,则可能是结果变坏太快,被cache的结果一旦变化就会从此值中删除
| Qcache_total_blocks | 4129 |
+-------------------------+-----------+
缓存的使用率=Qcache_hits/(Qcache_hits+com_select)

















