赞
踩
有一些耗时非常长的语句,可以通过如下语句检测出来,哪里出了问题。
show variables like 'profiling'
如果是on才是开启的
没开启执行set profiling=on
。
因为profile是检测你的查询语句性能分别耗时多少,所以得执行一下select吧。
show profiles
用来查看之前执行过的语句
show profile cpu,block io for query 3
show profiles的查询结果会得到查询的id,show profile就可以看到具体数据库的执行情况,哪一步消耗了多长时间。
下面是我的某个查询语句的情况:
图片mysql-profile结果
show profile的参数共有下面这几种:
主要是cpu和io。
在CPU和IO显示的条目里面有四个是不能出现的,他们非常耗时。
记录所有表的日志
set global general_log=1
set global log_output='TABLE'
上面这两句会把sql的执行情况存储到 mysql 库里面的 general_log 表。
然后select * from mysql.general_log
注意,只能在测试时候用
show status like 'innodb_row_lock%'
出现的字段说明如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。