精华内容
下载资源
问答
  • 2021-01-21 09:07:49

    mysql慢查询日志可以用来跟踪有问题的查询,可以用来分析当前程序里严重耗费资源的sql语句。

    打开mysql的慢查询日志,只要在mysql的配置文件里(windows系统是my.ini,linux系统是my.cnf)的[mysqld]下面加上如下代码即可:

    复制代码 代码如下:

    log-slow-queries=/var/lib/mysql/slowquery.log

    long_query_time=2

    注:

    log-slow-queries 设置把日志写在那里,为空的时候,系统会给慢查询日志赋予主机名,并被附加slow.log. /var/lib/mysql/slowquery.log为日志存放的文件的位置,一般这个目录要有mysql的运行帐号的可写权限,一般都将这个目录设置为mysql的数据存放目录

    long_query_time=2中的2表示查询超过两秒才记录.

    如果设置了参数log-long-format,那么所有没有使用索引的查询也将被记录。在文件my.cnf或my.ini中加入下面这一行可以记录这些查询

    这是一个有用的日志。它对于性能的影响不大(假设所有查询都很快),并且强调了那些最需要注意的查询(丢失了索引或索引没有得到最佳应用)

    # Time: 070927 8:08:52

    # User@Host: root[root] @ [192.168.0.20]

    # Query_time: 372 Lock_time: 136 Rows_sent: 152 Rows_examined: 263630

    select id, name from manager where id in (66,10135);

    这是慢查询日志中的一条,用了372秒,锁了136秒,返回152行,一共查了263630行

    对于庞大的日志数据,分析时必须借助工具了,mysql自带了分析的工具,使用方法如下:

    命令行下,进入mysql/bin目录,输入mysqldumpslow –help或--help可以看到这个工具的参数,主要有

    Usage: mysqldumpslow [ OPTS... ] [ LOGS... ]

    Parse and summarize the MySQL slow query log. Options are

    --verbose verbose

    --debug debug

    --help write this text to standard output

    -v verbose

    -d debug

    -s ORDER what to sort by (t, at, l, al, r, ar etc), 'at' is default

    -r reverse the sort order (largest last instead of first)

    -t NUM just show the top n queries

    -a don't abstract all numbers to N and strings to 'S'

    -n NUM abstract numbers with at least n digits within names

    -g PATTERN grep: only consider stmts that include this string

    -h HOSTNAME hostname of db server for *-slow.log filename (can be wildcard),

    default is '*', i.e. match all

    -i NAME name of server instance (if using mysql.server startup scrīpt)

    -l don't subtract lock time from total time

    -s,是order的顺序,说明写的不够详细,俺用下来,包括看了代码,主要有

    c,t,l,r和ac,at,al,ar,分别是按照query次数,时间,lock的时间和返回的记录数来排序,前面加了a的时倒叙

    -t,是top n的意思,即为返回前面多少条的数据

    -g,后边可以写一个正则匹配模式,大小写不敏感的

    复制代码 代码如下:

    mysqldumpslow -s c -t 20 host-slow.log

    mysqldumpslow -s r -t 20 host-slow.log

    从以上命令可以看出访问次数最多的20个sql语句和返回记录集最多的20个sql。

    复制代码 代码如下:

    mysqldumpslow -t 10 -s t -g “left join” host-slow.log

    以上是按照时间返回前10条里面含有左连接的sql语句。

    您可能感兴趣的文章:

    mysql开启慢查询实例演练

    查找和调优MySQL慢查询的方法

    MySQL 5.1.6以上版本动态开启慢查询日志的方法

    mysql 慢查询的原因分析点滴

    学习开启mysql慢查询与分析查询语句

    mysql开启慢查询以检查查询慢的语句

    更多相关内容
  • mysql慢查询日志对于跟踪有问题的查询非常有用,可以分析出当前程序里有很耗费资源的sql语句,那如何打开mysql慢查询日志记录呢?其实打开mysql慢查询日志很简单,只需要在mysql的配置文件里(windows系统是my.ini,...
  • MySQL开启慢查询日志

    2021-08-02 20:46:30
    # 查询 slow_query_log 查看是否已开启慢查询日志: show variables like '%slow_query_log%'; # 开启慢查询命令: set global slow_query_log='ON'; # 指定记录慢查询日志SQL执行时间得阈值(long_query_time ...

    开启慢查询

    # 查询 slow_query_log 查看是否已开启慢查询日志:
    show variables like '%slow_query_log%';
    
    # 开启慢查询命令:
    set global slow_query_log='ON';
    
    # 指定记录慢查询日志SQL执行时间得阈值(long_query_time 单位:秒,默认10秒)
    set global long_query_time=1;
    
    # 查询 “慢查询日志文件存放位置”
    show variables like '%slow_query_log_file%';
    

    通过配置my.cnf(windows是my.ini)系统文件开启(版本:MySQL5.5及以上)

    在my.cnf文件的[mysqld]下增加如下配置开启慢查询

    重启数据库后即持久化开启慢查询

    在这里插入图片描述

    [mysqld]
    
    ###########################################################
    
    # 开启慢查询功能
    slow_query_log=ON
    # 指定记录慢查询日志SQL执行时间得阈值
    long_query_time=1
    # 选填,默认数据文件路径
    slow_query_log_file=D:\develop\MySQL Server 5.5\joy-localhost-slow.log
    
    ###########################################################
    

    分析mysql慢查询日志 ,利用explain关键字可以模拟优化器执行SQL查询语句,来分析sql慢查询语句

    展开全文
  • 今天小编就为大家分享一篇关于MySQL开启慢查询日志功能的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
  • 主要介绍了MYSQL5.7.9开启慢查询日志的技巧的相关资料,需要的朋友可以参考下
  • 数据库开启慢查询日志 修改配置文件 在配置文件my.ini中加上下面两句话 log-slow-queries = C:\xampp\mysql_slow_query.log long_query_time=3 第一句使用来定义慢查询日志的路径(若是linux系统,会涉及权限问题)...
  • mysql开启慢查询日志

    2021-01-25 13:23:52
    sql与索引优化数据库表结构优化系统配置硬件mysql> show variables like 'slow_query_log';+----------------+-------+| Variable_name | Value |+----------------+-------+| slow_query_log | OFF |+----------...

    sql与索引优化

    数据库表结构优化

    系统配置

    硬件

    5b77d047dbe04c36ce8f2244839f20fb.png

    mysql> show variables like 'slow_query_log';

    +----------------+-------+

    | Variable_name | Value |

    +----------------+-------+

    | slow_query_log | OFF |

    +----------------+-------+

    1 row in set (0.00 sec)

    慢日志查询没有开启,可以开启一下。

    找到my.cnf,添加如下内容sudo vim /usr/local/mysql/my.cnf

    添加慢日志查询

    log_output=file

    slow_query_log=on

    slow_query_log_file = /tmp/mysql-slow.log

    log_queries_not_using_indexes=on

    long_query_time = 1

    重启mysql。

    确定修改是否成功启动慢日志查询

    mysql> show variables like 'slow_query_log';

    +----------------+-------+

    | Variable_name | Value |

    +----------------+-------+

    | slow_query_log | ON |

    +----------------+-------+

    1 row in set (0.00 sec)

    mysql> show variables like '%quer%';

    +----------------------------------------+------------------------------------+

    | Variable_name | Value |

    +----------------------------------------+------------------------------------+

    | binlog_rows_query_log_events | OFF |

    | ft_query_expansion_limit | 20 |

    | have_query_cache | YES |

    | log_queries_not_using_indexes | ON |

    | log_throttle_queries_not_using_indexes | 0 |

    | long_query_time | 1.000000 |

    | query_alloc_block_size | 8192 |

    | query_cache_limit | 1048576 |

    | query_cache_min_res_unit | 4096 |

    | query_cache_size | 8388608 |

    | query_cache_type | OFF |

    | query_cache_wlock_invalidate | OFF |

    | query_prealloc_size | 8192 |

    | slow_query_log | ON |

    | slow_query_log_file | /tmp/mysql-slow.log |

    +----------------------------------------+------------------------------------+

    执行如下SQL语句来查看mysql慢查询的状态

    show variables like '%slow%';

    执行一次慢查询操作  其实想要执行一次有实际意义的慢查询比较困难,因为在自己测试的时候,就算查询有20万条数据的海量表,也只需要0.几秒。我们可以通过如下语句代替:

    SELECT SLEEP(10);

    查看慢查询的数量  通过如下sql语句,来查看一共执行过几次慢查询:

    show global status like '%slow%';

    这时候再看,已经开启了慢查询日志。

    $ sudo cat /tmp/mysql-slow.log

    /usr/local/mysql/bin/mysqld, Version: 5.6.40-log (Source distribution). started with:

    Tcp port: 3306 Unix socket: /tmp/mysql.sock

    Time Id Command Argument

    如果更改日志目录位置

    比如,更改为/home/msyql/log/mysql-slow.log

    至少需要将log目录所有者设置为mysql:mysql。

    这样重启mysql的时候,才能自动生成mysql-slow.log文件。

    jiqing@jiqing-pad:/home/mysql/log$ ll

    总用量 12

    drwxr-xr-x 2 mysql mysql 4096 5月 31 01:46 ./

    drwxr-xr-x 3 jiqing jiqing 4096 5月 31 01:26 ../

    -rw-rw---- 1 mysql mysql 175 5月 31 01:46 mysql-slow.log

    jiqing@jiqing-pad:/home/mysql/log$ pwd

    /home/mysql/log

    如果log目录不是mysql用户权限,将无法生成日志文件,mysql用户无权写入数据。

    展开全文
  • 现在我们去了解了解mysql开启慢查询日志记录的方法。其实打开mysql的慢查询日志很简单,只需要在mysql的配置文件里(windows系统是my.ini,linux系统是my.cnf)的[mysqld]下面加上如下代码:复制代码 代码如...

    对于跟踪有问题的查询来说mysql慢查询日志是非常有用的衣柜功能,它可以为我们分析当前程序里有很耗费资源的sql语句,那么你知道如何打开mysql慢查询日志吗?现在我们去了解了解mysql开启慢查询日志记录的方法。

    其实打开mysql的慢查询日志很简单,只需要在mysql的配置文件里(windows系统是my.ini,linux系统是my.cnf)的[mysqld]下面加上如下代码:

    复制代码 代码如下:

    log-slow-queries=/var/lib/mysql/slowquery.log

    long_query_time=2

    注:

    log-slow-queries 设置把日志写在那里,为空的时候,系统会给慢查询日志赋予主机名,并被附加slow.log. /var/lib/mysql/slowquery.log为日志存放的文件的位置,一般这个目录要有mysql的运行帐号的可写权限,一般都将这个目录设置为mysql的数据存放目录

    long_query_time=2中的2表示查询超过两秒才记录.

    如果设置了参数log-long-format,那么所有没有使用索引的查询也将被记录。在文件my.cnf或my.ini中加入下面这一行可以记录这些查询

    这是一个有用的日志。它对于性能的影响不大(假设所有查询都很快),并且强调了那些最需要注意的查询(丢失了索引或索引没有得到最佳应用)

    # Time: 070927 8:08:52

    # User@Host: root[root] @ [192.168.0.20]

    # Query_time: 372 Lock_time: 136 Rows_sent: 152 Rows_examined: 263630

    select id, name from manager where id in (66,10135);

    这是慢查询日志中的一条,用了372秒,锁了136秒,返回152行,一共查了263630行

    如果日志内容很多,用眼睛一条一条去看会累死,mysql自带了分析的工具,使用方法如下:

    命令行下,进入mysql/bin目录,输入mysqldumpslow –help或--help可以看到这个工具的参数,主要有

    Usage: mysqldumpslow [ OPTS... ] [ LOGS... ]

    Parse and summarize the MySQL slow query log. Options are

    --verbose verbose

    --debug debug

    --help write this text to standard output

    -v verbose

    -d debug

    -s ORDER what to sort by (t, at, l, al, r, ar etc), 'at' is default

    -r reverse the sort order (largest last instead of first)

    -t NUM just show the top n queries

    -a don't abstract all numbers to N and strings to 'S'

    -n NUM abstract numbers with at least n digits within names

    -g PATTERN grep: only consider stmts that include this string

    -h HOSTNAME hostname of db server for *-slow.log filename (can be wildcard),

    default is '*', i.e. match all

    -i NAME name of server instance (if using mysql.server startup scrīpt)

    -l don't subtract lock time from total time

    -s,是order的顺序,说明写的不够详细,俺用下来,包括看了代码,主要有

    c,t,l,r和ac,at,al,ar,分别是按照query次数,时间,lock的时间和返回的记录数来排序,前面加了a的时倒叙

    -t,是top n的意思,即为返回前面多少条的数据

    -g,后边可以写一个正则匹配模式,大小写不敏感的

    mysqldumpslow -s c -t 20 host-slow.log

    mysqldumpslow -s r -t 20 host-slow.log

    上述命令可以看出访问次数最多的20个sql语句和返回记录集最多的20个sql。

    mysqldumpslow -t 10 -s t -g “left join” host-slow.log

    这个是按照时间返回前10条里面含有左连接的sql语句。

    本文主要为大家讲解了mysql开启慢查询日志记录的方法,其实mysql开启慢查询日志记录的方法非常简单,大家只需要根据小编分享的步骤进行操作即可。

    关注公众号:拾黑(shiheibook)了解更多

    [广告]赞助链接:

    展开全文
  • 本篇文章主要介绍了MySQL 开启慢查询日志的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 1、CMD命令行进入MySQL数据库2、登录mysql数据库3、show variables like 'slow_query%';show variables like 'long_query_time';... ---- 这个更好slow_query_log | OFF慢查询开启4、将 slow_query_log 全...
  • MYSQL慢查询配置1. 慢查询有什么用?...首先我们先查看MYSQL服务器的慢查询状态是否开启.执行如下命令:show variables like '%quer%';我们可以看到当前log_slow_queries状态为OFF, 说明当前并没有开启慢...
  • mysql 开启慢查询日志

    2020-03-25 14:56:12
    由于慢查询日志记录的信息比较多,会影响mysql的性能,所以生产环境不建议长期开启 1、查看慢查询日志是否开启(slow_query_log ON 为开启 OFF为关闭) show variables like '...3、在终端打开慢查询日志 set ...
  • 如何开启mysql慢查询日志

    千次阅读 2022-03-15 11:47:05
    MySQL数据库,慢查询日志
  • 1、slow_query_log :是否开启慢查询日志,1表示开启,0表示关闭。 2、log_slow_queries :旧版(5.6以下版本)MySQL数据库慢查询日志存储路径。可以不设置该参数,系统则会默认给一个缺省的文件host_name-slow.log ...
  • 1、修改my.cnf sudo vim /etc/my.cnf 添加或配置 [mysqld] slow_query_log = 1 slow_query_log_file = /var/lib/mysql/slow-query.log # 若没有指定,默认名字为hostname_slow.log ...  表示开启慢查询,0
  • 开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能。 二、参数说明 slow_query_log 慢查询开启状态 slow_query_log_file 慢查询日志存放的位置...
  • mysql开启慢查询 登录mysql查看是否开启了慢查询 slow_query_log的值为OFF表示没开启缓存日志,如果开启slow_query_log的值应为ON slow_query_log_file 指定缓存日志的路径 临时开启慢查询日志监控 1表示开启,0...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 79,460
精华内容 31,784
关键字:

mysql开启慢查询日志

mysql 订阅
友情链接: 24c02_write_read.rar