irpas技术客

MySQL 慢查询_一起努力啊啊啊啊_mysql 慢查询

大大的周 3264

一、什么是慢查询

慢查询,顾名思义,执行很慢的查询。有多慢?超过long_query_time参数设定的时间阈值(默认10s),就被认为是慢的,是需要优化的。慢查询被记录在慢查询日志里。慢查询日志默认是不开启的。如果需要优化SQL语句,就可以开启这个功能,它可以让你很容易地知道哪些语句是需要优化的。

1??show variables like 'slow_query_log';查询是否开启慢查询日志 【开启慢查询sql:set global slow_query_log = 1/on;】 【关闭慢查询sql:set global slow_query_log = 0/off;】 2??show variables like 'log_queries_not_using_indexes';查询未使用索引是否开启记录慢查询日志 【开启记录未使用索引sql:set global log_queries_not_using_indexes=1/on】 【关闭记录未使用索引sql:set global log_queries_not_using_indexes=1/off】 3??show variables like 'long_query_time';查询超过多少秒的记录到慢查询日志中 【设置超1秒就记录慢查询sql:set global long_query_time= 1;设置超1秒就记录】

二、慢查询的配置文件 my.cnf

在MySQL的配置文件my.cnf中写上:

long_query_time = 10 log-slow-queries = /var/lib/mysql/mysql-slow.log

long_query_time是指执行超过多久的SQL会被日志记录下来,这里是10 秒。 log-slow-queries设置把日志写在哪里。为空的时候,系统会给慢查询日志赋予主机名,并加上slow.log。如果设置了参数log-long-format,那么所有没有使用索引的查询也将被记录。

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

三、慢查询解读

第一行:记录时间 第二行:用户名 、用户的IP信息、线程ID号 第三行:执行花费的时间【单位:毫秒】、执行获得锁的时间、获得的结果行数、扫描的数据行数 第四行:这SQL执行的时间戳 第五行:具体的SQL语句


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #MySQL #慢查询 #慢查询被记录在慢查询日志里 #慢查询日志默认是不开启的 #1show