MySQL常用性能分析命令

database

show version();

show engines;

show variables like "innodb_buffer_pool_size";#缓存池大小

show variables like "innodb_io";

show variables like "%slow%";##slow_query_log=on打开了慢查询日志,执行时间超过2秒即为慢查询。

show variables like "max_connections";#最大连接数

show variables like "max_used_connections";#响应的最大连接数

show global status like "Thread%";

#进程使用情况:

#Thread_create表示创建过的线程数,Thread_create过大表示MySQL一直在创建线程,比较耗资源,可适当增加配置文件中thread_cache_size值。

show variables like "thread_cache_size";

show global status like "qcache%";

#查询缓存:

#Qcache_free_blocks缓存中相邻内存块的个数,数目大说明有碎片,此时可通过flush query cache命令对缓存中的碎片进行整理;

#Qcache_free_memory:缓存中的空闲内存

#Qcache_hits:每次查询在缓存中命中时,就增大。

#Qcache_inserts:每次插入一个查询时就增大。命中次数/插入次数=命中比率。

#Qcache_lowmem_prunes:缓存出现内存不足并且必须要进行清理以便为更多查询提供空间的次数。这个数字最好长时间来看:如果这个数字不断增长,就表明碎片非常严重,或者内存很少。上面的free_blocks和free_memory会告诉你是哪种情况.

#Qcache_not_cached:不适合进行缓存的查询的数量。通常是由于这些查询不是select语句或者用了now()之类的函数。

#Qcache_queries_in_cahce:当前缓存的查询(和响应的数量)。

#Qcache_total_blocks:缓存中块的数量。

show variables like "query_cache%";

#query_cache_limit:超过此大小的查询将不缓存;

#query_cache_min_res_unit:缓存块的最小大小;

#query_cache_size:查询缓存大小;

#query_cache_type:缓存类型,决定缓存什么样的查询;

#query_cache_wlock_invalidate:当有其他客户端正在对MyISAM表进行写操作时,如果查询在query cache中,是否返回cache结果还是等写操作完成再读表获取结果。

show global status like "sort%";#排序使用情况

show global status like "table_locks%";

#表锁情况

#Table_locks_immediate:立即释放表锁数

#Table_locks_waited:需要等待的表锁数

#如果Table_locks_immediate/Table_locks_waited>5000,最好采用InnoDB引擎,因为InnoDB是行锁,而MyISAM是表锁,对于高并发写入,InnoDB效果更好。

 

以上是 MySQL常用性能分析命令 的全部内容, 来源链接: utcz.com/z/535063.html

回到顶部