mysql分析需要优化的语句

要分析的sql语句是执行速度比较慢的。查找执行速度比较慢的sql语句。找到后,具体分析。

一、慢查询日志

慢查询日志是一种mysql提供的日志,记录所有执行时间超过某个时间界限的sql的语句。这个时间界限,我们可以指定。在mysql中默认没有开启慢查询,即使开启了,只会记录执行的sql语句超过10秒的语句。

1. 如何开启慢查询日志

打开mysql的配置文件,window系统下是my.ini / linux系统下是my.cnf

max_connections=100:最大的连接数,默认是100

log-slow-queries='man-log':指定慢查询日志的名称,默认是保存在和mysql的数据库文件同一个文件夹里面的。我们也可以自己知道存储位置,比如log-slow-queries=”d:/log”

long_query_time=0.5:指定的时间界限。默认是10

注意: 修改完成后,要重启mysql。

2. 测试慢查询日志是否记录超过0.5秒的sql 语句。

benchmark(count,expr)函数可以测试执行count次expr操作需要的时间。

查看慢查询日志里面记录的sql语句的情况。

在mysql的客户端进行查看慢查询日志的时间界限

也可以更改该时间界限,只对当前会话有效。

二、profiles机制

该机制能够精确的记录执行sql语句的时间,能精确到小数点后8位

开启方式:直接在 mysql的客户端进行开启

set profiling=1|0(开启和关闭)

查看记录的时间:

show profiles

注意:不适应时,最好将其关闭

php当mysql的客户端,php代码如何实现。

//开启
$sql="set profiling=1";
mysql_query($sql);
//查询
$sql="show profiles";
mysql_query($sql);

一个sql语句执行比较慢,大多数的原因是没有用到索引。

posted @ 2016-08-26 22:52  chenjiacheng  阅读(193)  评论(0编辑  收藏  举报