mysql 调优

提供性能可以考虑因素:

1.如果opened_tables太大,应该把my.cnf中的table_cache变大
2.如果Key_reads太大,则应该把my.cnf中key_buffer_size变大.可以用Key_reads/Key_read_requests计算出cache失败率1:1000比较好

3.如果Handler_read_rnd太大,则你写的SQL语句里很多查询都是要扫描整个表,而没有发挥索引的键的作用
4.如果Threads_created太大,就要增加my.cnf中thread_cache_size的值.可以用Threads_created/Connections计算cache命中率
5.如果Created_tmp_disk_tables太大,就要增加my.cnf中tmp_table_size的值,用基于内存的临时表代替基于磁盘的

_________________________________________________________________________________________________________________

6.如果有很多反复执行相同的查询,增大query_cache_size值,添加query_cache_size = 32M添加到 /etc/my.conf 中可以启用 32MB 的查询缓存

7.Qcache_free_blocks 缓存中相邻内存块的个数。数目大说明可能有碎片。FLUSH QUERY CACHE会对缓存中的碎片进行整理,从而得到一个空闲块

8.Qcache_free_memory 缓存中的空闲内存

9.Qcache_hits 每次查询在缓存中命中时就增大。

10.Qcache_inserts 每次插入一个查询时就增大。命中次数除以插入次数就是不中比率;用 1 减去这个值就是命中率。在上面这个例子中,大约有 87% 的查询都在缓存中命中。

11.Qcache_lowmem_prunes 缓存出现内存不足并且必须要进行清理以便为更多查询提供空间的次数。这个数字最好长时间来看;如果这个数字在不断增长,就表示可能碎片非常严重,或者内存很少。(上面的 free_blocksfree_memory可以告诉您属于哪种情况)。

12.Qcache_not_cached 不适合进行缓存的查询的数量,通常是由于这些查询不是 SELECT语句。

13.Qcache_queries_in_cache 当前缓存的查询(和响应)的数量。

14.Qcache_total_blocks 缓存中块的数量。

_____________________________________________________________________________________________________________________



你可能感兴趣的:(mysql,调优)