mysql性能监控和sql语句

2022-06-26 09:23:59 浏览数 (1)

1、查询缓存:

代码语言:javascript复制
mysql> show variables like '%query_cache%';

2、缓存在Cache中线程数量thread_cache_size:

代码语言:javascript复制
 mysql> show variables like 'thread%';

3、DB已连接的线程数:

代码语言:javascript复制
mysql> show status like 'connections';

4、当前连接线程状态:

代码语言:javascript复制
mysql> show status like '%thread%';

5、索引缓存大小:

代码语言:javascript复制
mysql> show variables like 'key_buffer_size';

6、索引缓存未命中率:

代码语言:javascript复制
mysql> show global status like 'key_read%';

7、索引缓存命中率:

代码语言:javascript复制
mysql> show global status like 'key_%';

8、索引读取统计:

代码语言:javascript复制
mysql> show global status like 'key_blocks_u';

key_blocks_unused表示未使用的缓存簇(blocks)数,key_blocks_used表示曾经用到的最大的blocks,如果缓存都用到了,要么增加key_buffer_size,要么过度索引,把缓存占满了。

9、并发最大连接数-允许最大连接数(一般500到800比较合适):

代码语言:javascript复制
mysql> show variables like 'max_connections';

10、并发最大连接数-服务器响应最大连接数:

代码语言:javascript复制
mysql> show global status like 'max_used_connections';

11、并发最大连接数-当前连接数:

代码语言:javascript复制
mysql> show global status like 'connections';

12、并发最大连接数-线程队列(值越小越好):

代码语言:javascript复制
mysql> show variables like 'back_log';

13、临时表:

代码语言:javascript复制
mysql> show global status like 'created_tmp%';

临时表比较大无法在内存完成时就不得使用磁盘文件,如果'created_tmp_tables非常大,则可能是系统中的排序操作过多,或者是表连接方式优化不够。

14、mysql服务器对临时表的配置:

代码语言:javascript复制
mysql> show variables where variable_name  in ('temp_able_siae','max_heap_table_size');

当临时表空间小于max_heap_table_size时,才能全部放入内存。

15、表扫描情况:

代码语言:javascript复制
mysql> show global status like 'handler_read%';
mysql> show global status like 'com_select';

如果表扫描率超过4000,说明进行太多表扫描,可能索引没有建好,增加read_buffer_size值会有好处,但不要查8M。

0 人点赞