今天宠物迷的小编给各位宠物饲养爱好者分享mysql 慢日志设置的宠物知识,其中也会对mysql怎么开启慢查询日志开启(查看mysql慢查询)进行专业的解释,如果能碰巧解决你现在面临的宠物相关问题,别忘了关注本站哦,现在我们开始吧!
1、开启慢查询
找到 MySQL 的配置文件 ,my***f (Windows 为 my.ini ),在 MySQL 下增加下面几行:
long_query_time=2
log-slow-queries= /usr/var/slowquery.log
上面的 2 是查询的时间,即当一条 SQL 执行时间超过2秒的时候才记录,/usr/var/slowquery.log 是日志记录的位置。
然后重新启动MySQL服务
2、 MySQL 配置文件的位置
Windows:Windows 的配置文件为 my.ini,一般在 MySQL 的安装目录下或者 c:\Windows 下。
Linux:Linux 的配置文件为 my***f ,一般在 /etc 下。
1、开启慢查询
找到 MySQL 的配置文件 ,my***f (Windows 为 my.ini ),在 MySQL 下增加下面几行:
long_query_time=2
log-slow-queries= /usr/var/slowquery.log
上面的 2 是查询的时间,即当一条 SQL 执行时间超过2秒的时候才记录,/usr/var/slowquery.log 是日志记录的位置。
然后重新启动MySQL服务
2、 MySQL 配置文件的位置
Windows:Windows 的配置文件为 my.ini,一般在 MySQL 的安装目录下或者 c:\Windows 下。
Linux:Linux 的配置文件为 my***f ,一般在 /etc 下。
1、开启慢查询
找到 MySQL 的配置文件 ,my***f (Windows 为 my.ini ),在 MySQL 下增加下面几行:
long_query_time=2
log-slow-queries= /usr/var/slowquery.log
上面的 2 是查询的时间,即当一条 SQL 执行时间超过2秒的时候才记录,/usr/var/slowquery.log 是日志记录的位置。
然后重新启动MySQL服务
2、 MySQL 配置文件的位置
Windows:Windows 的配置文件为 my.ini,一般在 MySQL 的安装目录下或者 c:\Windows 下。
Linux:Linux 的配置文件为 my***f ,一般在 /etc 下。
1、开启慢查询
找到 MySQL 的配置文件 ,my***f (Windows 为 my.ini ),在 MySQL 下增加下面几行:
long_query_time=2
log-slow-queries= /usr/var/slowquery.log
上面的 2 是查询的时间,即当一条 SQL 执行时间超过2秒的时候才记录,/usr/var/slowquery.log 是日志记录的位置。
然后重新启动MySQL服务
2、 MySQL 配置文件的位置
Windows:Windows 的配置文件为 my.ini,一般在 MySQL 的安装目录下或者 c:\Windows 下。
Linux:Linux 的配置文件为 my***f ,一般在 /etc 下。
修改配置文件
在my.ini中加上下面两句话
log-slow-queries = D:\wamp\mysql_slow_query.log
long_query_time=5
第一句使用来定义慢查询日志的路径(因为是windows,所以不牵涉权限问题)
第二句使用来定义查过多少秒的查询算是慢查询,我这里定义的是5秒
第二步:查看关于慢查询的状态
执行如下SQL语句来查看mysql慢查询的状态
show variables like '%slow%';
执行结果会把是否开启慢查询、慢查询的秒数、慢查询日志等信息打印在屏幕上。
第三步:执行一次慢查询操作
其实想要执行一次有实际意义的慢查询比较困难,因为在自己测试的时候,就算查询有20万条数据的海量表,也只需要0.几秒。我们可以通过如下语句代替:
SELECT SLEEP(10);
第四步:查看慢查询的数量
通过如下sql语句,来查看一共执行过几次慢查询:
show global status like '%slow%';
您好,很高兴为您解答。在mysql的配置文件里(windows系统是my.ini,linux系统是my***f)的[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***f或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语句。 如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】希望我的回答对您有所帮助,望采纳! ~ O(∩_∩)O~
1、开启慢查询
找到 MySQL 的配置文件 ,my***f (Windows 为 my.ini ),在 MySQL 下增加下面几行:
long_query_time=2
log-slow-queries= /usr/var/slowquery.log
上面的 2 是查询的时间,即当一条 SQL 执行时间超过2秒的时候才记录,/usr/var/slowquery.log 是日志记录的位置。
然后重新启动MySQL服务
2、 MySQL 配置文件的位置
Windows:Windows 的配置文件为 my.ini,一般在 MySQL 的安装目录下或者 c:\Windows 下。
Linux:Linux 的配置文件为 my***f ,一般在 /etc 下。
问题 我们有一个 SQL,用于找到没有主键 / 唯一键的表,但是在 MySQL 5.7 上运行特别慢,怎么办? 实验 我们搭建一个 MySQL 5.7 的环境,此处省略搭建步骤。 写个简单的脚本,制造一批带主键和不带主键的表: 执行一下脚本: 现在执行以下 SQL 看看效果: ... 执行了 16.80s,感觉是非常慢了。 现在用一下 DBA 三板斧,看看执行计划: 感觉有点惨,由于 information_schema***lumns 是元数据表,没有必要的统计信息。 那我们来 show warnings 看看 MySQL 改写后的 SQL: 我们格式化一下 SQL: 可以看到 MySQL 将 select from A where A.x not in (select x from B) //非关联子查询 转换成了 select from A where not exists (select 1 from B where B.x = a.x) //关联子查询 如果我们自己是 MySQL,在执行非关联子查询时,可以使用很简单的策略: select from A where A.x not in (select x from B where ...) //非关联子查询:1. 扫描 B 表中的所有记录,找到满足条件的记录,存放在临时表 C 中,建好索引2. 扫描 A 表中的记录,与临时表 C 中的记录进行比对,直接在索引里比对, 而关联子查询就需要循环迭代: select from A where not exists (select 1 from B where B.x = a.x and ...) //关联子查询扫描 A 表的每一条记录 rA: 扫描 B 表,找到其中的第一条满足 rA 条件的记录。 显然,关联子查询的扫描成本会高于非关联子查询。 我们希望 MySQL 能先"缓存"子查询的结果(缓存这一步叫物化,MATERIALIZATION),但MySQL 认为不缓存更快,我们就需要给予 MySQL 一定指导。 ... 可以看到执行时间变成了 0.67s。 整理 我们诊断的关键点如下: \1. 对于 information_schema 中的元数据表,执行计划不能提供有效信息。 \2. 通过查看 MySQL 改写后的 SQL,我们猜测了优化器发生了误判。 \3. 我们增加了 hint,指导 MySQL 正确进行优化判断。 但目前我们的实验仅限于猜测,猜中了万事大吉,猜不中就无法做出好的诊断。
这是一个慢查询日志的展示工具,能够帮助 DBA 或者开发人员分析数据库的性能问题,给出全面的数据摆脱直接查看 slow-log。QAN(Query Analytics) PMM 目前有 2 个版本,但是对于 QAN 来说其大致由三部分组成: QAN-Agent(client):负责采集 slow-log 的数据并上报到服务端 QAN-API(server):负责存储采集的数据,并对外提供查询接口 QAN-APP:专门用来展示慢查询数据的 grafana 第三方插件 1. 数据流转 slow-log --> QAN-Agent --> QAN-API QAN-APP(grafana) 2. pmm1 架构图 3. pmm2 架构图
MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10S以上的语句。
默认情况下,Mysql数据库并不启动慢查询日志,需要我们手动来设置这个参数,当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。慢查询日志支持将日志记录写入文件,也支持将日志记录写入数据库表。
本文由宠物迷 百科常识栏目发布,非常欢迎各位朋友分享到个人朋友圈,但转载请说明文章出处“mysql怎么开启慢查询日志开启”
上一篇
衣服带N字母的是什么牌子
下一篇
黑面膜好还是白面膜好?