mysql性能监控和sql语句

1、查询缓存:

  mysql> show variables like '%query_cache%';

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

  mysql> show variables like 'thread%';

3、DB已连接的线程数:

  mysql> show status like 'connections';

4、当前连接线程状态:

  mysql> show status like '%thread%';

5、索引缓存大小:

  mysql> show variables like 'key_buffer_size';

6、索引缓存未命中率:

  mysql> show global status like 'key_read%';

7、索引缓存命中率:

  mysql> show global status like 'key_%';

8、索引读取统计:

  mysql> show global status like 'key_blocks_u';

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

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

  mysql> show variables like 'max_connections';

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

  mysql> show global status like 'max_used_connections';

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

  mysql> show global status like 'connections';

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

  mysql> show variables like 'back_log';

13、临时表:

  mysql> show global status like 'created_tmp%';

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

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

  mysql> show variables where variable_name  in ('temp_able_siae','max_heap_table_size');

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

15、表扫描情况:

  mysql> show global status like 'handler_read%';

  mysql> show global status like 'com_select';

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

你可能感兴趣的:(mysql性能监控和sql语句)