找出mysql中效率最低的语句

原创 2007年09月26日 10:41:00

mysql有一个功能就是可以log下来运行的比较慢的sql语句,默认是没有这个log的,为了开启这个功能,要修改my.cnf或者在mysql启动的时候加入一些参数。如果在my.cnf里面修改,需增加如下几行
引用
long_query_time = 1
log-slow-queries = /var/youpath/slow.log
log-queries-not-using-indexes[这个在mysql4.10以后才被引入]

long_query_time 是指执行超过多久的sql会被log下来,这里是1秒。
log-slow-queries 设置把日志写在那里,可以为空,系统会给一个缺省的文件host_name-slow.log,我生成的log就在mysql的data目录
log-queries-not-using-indexes 就是字面意思,log下来没有使用索引的query。
把上述参数打开,运行一段时间,就可以关掉了,省得影响生产环境。

接下来就是分析了,我这里的文件名字叫host-slow.log。
先mysqldumpslow –help以下,我主要用的是
引用
-s ORDER what to sort by (t, at, l, al, r, ar etc), ‘at’ is default
-t NUM just show the top n queries
-g PATTERN grep: only consider stmts that include this string
-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语句。
用了这个工具就可以查询出来那些sql语句是性能的瓶颈,进行优化,比如加索引,该应用的实现方式等。  
 

跳水比赛,8个评委打分。运动员的成绩是8个成绩去掉一个最高分, 去掉一个最低分,剩下的6个分数的平均分就是最后得分。 使用一维数组 2.请把打最高分的评委和最低分的评委找出来。 3.找出最佳评委

package com.my; import java.io.*; /**  * 1.跳水比赛,8个评委打分。运动员的成绩是8个成绩去掉一个最高分, 去掉一个最低分,剩下的6个分数的平均...

mysql 如何查看sql语句执行时间和效率

1 show profiles; 2 查看profiling 是否是on状态; 3 如果是off,则 set profiling = 1; 4 执行自己的sql语句; 5 show profi...

mysql 分析查找执行效率慢的SQL语句

启动Mysql时加参数--log-slow-queries来记录执行时间超过long_query_time秒的sql MySQL 自带 slow log 的分析工具 mysqldumpslow。 sl...

MySQL查看SQL语句执行效率

Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看 SQL 语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出...
  • lcathm
  • lcathm
  • 2016年07月15日 19:14
  • 300

mySQL数据库Sql语句执行效率检查--Explain命令

Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看SQL语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好...
  • zbuger
  • zbuger
  • 2016年04月17日 15:30
  • 183

MySQL 使用explain分析sql语句的查询效率(二)

本文将继续上文讲解其他与效率相关的参数 explain所返回的其他参数key为使用的索引,而使用的索引又影响着连接类型type,它们共同决定了可能扫描行数rows 参数解析 (4)type ...
  • JathamJ
  • JathamJ
  • 2017年01月03日 15:45
  • 786

mySQL数据库Sql语句执行效率检查--Explain命令

explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。 使用方法:在select语句前加上explain就可以了:explai...

MySQL数据库中查找执行效率慢的SQL语句并KILL ID

MySQL数据库中查找执行效率慢的SQL语句并KILL ID 启动Mysql时加参数--log-slow-queries来记录执行时间超过long_query_time秒的sql: ...

mysql处理上百万条的数据库如何优化语句来提高处理查询效率

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用...

MySQL 使用explain分析sql语句的查询效率(一)

mysql explain用于分析sql 语句的执行及数据库索引的使用。本文将致力于帮助大家充分理解explain所返回的各项参数,从而使大家快速掌握explain用法技巧。如果你在看其他教程或视频后...
  • JathamJ
  • JathamJ
  • 2016年12月28日 16:24
  • 3453
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:找出mysql中效率最低的语句
举报原因:
原因补充:

(最多只允许输入30个字)