天天看点

SHOW STATUS语句查看MySQL数据库的性能参数

SHOW STATUS语句查看MySQL数据库的性能参数
1.SHOW STATUS like 'Slow_queries'   //慢查询的次数  
  查看日志
       1.配置
         centos下  my.cnf
               log-slow-queries = /tmp/mysql-slow.log
               long_query_time = 2
          windows下  my.ini:
               log_slow_queries
               long_query_time = 2     //查询SQL语句超过两秒的就记录  通常2秒就够了,默认是10秒
         注意:
              在许多站点中,一个SQL语句超过1秒的执行时间都算慢的了
              保存退出,重启MySQL
            
2.分析
     [[email protected] tmp]# tail -f /tmp/mysql_slow.log
              Time: 120815 23:22:11
              [email protected]: root[root] @ localhost []
              Query_time: 9.869362 Lock_time: 0.000035 Rows_sent: 1 Rows_examined: 6261774
              SET timestamp=1294388531;
              select count(*) from blog;
              Time:执行时间
              [email protected]:执行用户
              Query_time SQL执行的时间,越长则越慢
              Lock_time 在MySQL服务器阶段(不是在存储引擎阶段)等待表锁时间
              Rows_sent 查询返回的行数
              Rows_examined 查询检查的行数
              
    2.SHOW STATUS like 'Com_(CRUD)'
        SHOW (GLOBAL) STATUS like 'Com_select'   //查看总共执行select的次数
        SHOW (GLOBAL) STATUS like 'Com_insert'   
        SHOW (GLOBAL) STATUS like 'Com_delete';
        
    3.SHOW STATUS like 'uptime'; //查询当前MySQL本次启动后的运行统计时间
    
    4.SHOW STATUS like 'threads%';
        threads_cached  //查看线程缓存内的线程的数量
        threads_connected //查看当前打开的连接的数量
        threads_running  //查看激活的(非睡眠状态)线程数。
        
    5.show status like  'Innodb_buffer_pool_%';  //查看相关缓存信息
        Innodb_buffer_pool_read_requests:read请求的次数
        Innodb_buffer_pool_reads:从物理磁盘中读取数据的请求次数
        innodb buffer的read命中率 = (Innodb_buffer_pool_read_requests - Innodb_buffer_pool_reads) /         Innodb_buffer_pool_read_requests * 100%  //命中率不会低于99%
        低于这个值的话就要考虑加大innodb buffer pool
  
   6.show variables like '%innodb_buffer_pool_size%'  //命令查看当前缓存的大小
         默认是8M(8388608 ),一般来讲这个值肯定是不够的
         修改/etc/my.cnf文件,并添加字段innodb_buffer_pool_size = 3G,然后重启mysql 服务



           

继续阅读