深圳全飞鸿

标题: mysql慢查询配置 [打印本页]

作者: zhgc    时间: 2019-9-13 18:37
标题: mysql慢查询配置
本帖最后由 zhgc 于 2019-9-13 18:51 编辑

配置慢查询前记住这四件事:

1. 检查slow_log表的引擎,如果是CSV要改为MYISAM

show create table mysql.slow_log

CREATE TABLE `slow_log` (
  `start_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `user_host` mediumtext NOT NULL,
  `query_time` time NOT NULL,
  `lock_time` time NOT NULL,
  `rows_sent` int(11) NOT NULL,
  `rows_examined` int(11) NOT NULL,
  `db` varchar(512) NOT NULL,
  `last_insert_id` int(11) NOT NULL,
  `insert_id` int(11) NOT NULL,
  `server_id` int(10) unsigned NOT NULL,
  `sql_text` mediumtext NOT NULL
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log'

  1. set global slow_query_log=0;
  2. ALTER TABLE mysql.slow_log ENGINE = MYISAM
复制代码


2. slow_query_log 与 log_slow_queries  的关系
slow_query_log      :  指定是否开启慢查询日志
log_slow_queries    :  指定是否开启慢查询日志(该参数要被slow_query_log取代,做兼容性保留)

3. 输出要改为TABEL
log_output='TABLE'

show global variables like '%output%'

默认是FILE, 要改为TABLE

  1.     set global slow_query_log=0;
  2.     set global log_output='TABLE';
复制代码


4. slow_log表的数据删不掉的,只能truncate

truncate   mysql.slow_log



接下来,看下数据库中的当前配置:

  1.     show global variables like '%output%'
  2.    
  3.     show global variables like '%slow%'
  4.    
  5.     show global variables like '%long%'
复制代码




作者: zhgc    时间: 2019-9-13 18:47

慢查询的开启与关闭



1.可以配置my.ini文档
  1. [mysqld]
  2. log_output='TABLE'
  3.    
  4. slow_launch_time=1
  5. long_query_time=1
  6.    
  7. log_slow_queries=1
  8. slow_query_log=1
复制代码


2.可以直接修改变量
   
  1. set global slow_query_log=0; //先关闭
  2. truncate   mysql.slow_log;
  3. set global log_output='TABLE';
  4. set global slow_launch_time=1;
  5. set global long_query_time=1;  //注意啊,不是第一次遗漏了
  6. set global slow_query_log=1;    //最后打开
复制代码

        

    show global variables like '%slow_query%'
    show global variables like '%general_log%'
    select * from mysql.general_log
    select * from mysql.slow_log
        
    show warnings;
作者: zhgc    时间: 2019-9-13 18:53

MYSQL慢查询
慢查询还有一些参数,再研究一下:
  1.     long-queries-not-using-indexes   --记录所有没有使用到索引的查询语句
  2.     min_examined_row_limit=1000    --记录那些由于查找了多余1000次而引发的慢查询
  3.     long-slow-admin-statements     --记录那些慢的optimize table,analyze table和alter table语句
  4.     log-slow-Slave-statements      --记录由Slave所产生的慢查询
复制代码


long-queries-not-using-indexes
这个参数在my.ini中设置时,一样只要放置就行,不需要付值:
  1.     log_output='TABLE'
  2.     slow_launch_time=1
  3.     slow_query_log=1
  4.     long_query_time=1
  5.     skip-name-resolve
  6.     log_queries_not_using_indexes
复制代码





欢迎光临 深圳全飞鸿 (http://www.nagomes.com/disc/) Powered by Discuz! X3.2