使用MySQL的慢查询日志找到低效的SQL语句

如题,要开启mysql的慢查询日志可以在mysql的配置文件中的[mysqld]下设置两项:

log-slow-queries = D:/soft/PHPnow/MySQL-5.1.50/test.log
        long_query_time = 1

log-slow-queries表示日志册存储位置,long_query_time表示执行时间 单位是秒,这样设置后重启MySQL服务器,查询超过1秒的sql语句将会记录到日志中,需要注意的是log_query_time不能设置小数(经测试有些版本也可以设置)。

时间: 2024-08-13 18:25:47

使用MySQL的慢查询日志找到低效的SQL语句的相关文章

mysql通过查看跟踪日志跟踪执行的sql语句

在SQL SERVER下跟踪sql采用事件探查器,而在mysql下如何跟踪sql呢? 其实方法很简单,开启mysql的日志log功能,通过查看跟踪日志即可. 开启mysql的日志log方法: windows环境下的配置方法: 我使用的版本:Version: 5.0.37-community-nt-log (MySQL Community Edition (GPL)) 找到my.ini,我的是在“G:\Program Files (x86)\MySQL\MySQL Server 5.0”目录下,

PHP慢脚本日志和Mysql的慢查询日志(转)

1.PHP慢脚本日志 间歇性的502,是后端 PHP-FPM 不可用造成的,间歇性的502一般认为是由于 PHP-FPM 进程重启造成的. 在 PHP-FPM 的子进程数目超过的配置中的数量时候,会出现间歇性的502错误,如果在配置中设置了max_requests的话,超过数量也会出现502错误,而max_requests的设置,正是为了防止不安全的第三方library脚本的 内存泄露 ,当然你自己编写的脚本存在 死锁 的话,也会出现502现象. 如果你发现mysql负载并不高,但是php-fp

MySQL的慢查询日志

mysql本身支持慢查询日志,可以配置SQL查询超过特定时间的查询记录到日志中.这在优化SQL查询中是非常有效的工具,能够帮助我们快速定位发生问题的SQL. 慢查询日志常用的变量   long_query_time : 最小值为0,默认为10毫秒,仅记录超过查询时间的SQL,最小粒度为毫秒. min_examined_row_limit : 执行查询时扫描过的行数. slow_query_log_file : 慢查询日志文件名称 log-output : 慢查询日志存放路径 log_querie

mysql 通过慢查询日志查写得慢的sql语句

MySQL通过慢查询日志定位那些执行效率较低的SQL 语句,用--log-slow-queries[=file_name]选项启动时,mysqld 会写一个包含所有执行时间超过long_query_time 秒的SQL语句的日志文件,通过查看这个日志文件定位效率较低的SQL . 慢查询日志在查询结束以后才记录,所以在应用反映执行效率出现问题的时候查询慢查询日志并不能定位问题,可以使用show processlist命令查看当前MySQL在进行的线程,包括线程的状态.是否锁表等,可以实时地查看SQ

学会读懂 MySql 的慢查询日志

在前边的博客<何时.怎样开启 MySql 日志?>中,我们了解到了怎样启用 MySql 的慢查询日志. 今天我们来看一下怎样去读懂这些慢查询日志.在跟踪慢查询日志之前.首先你得保证最少发生过一次慢查询.假设你没有能够自己制造一个:[email protected]# mysql -e 'SELECT SLEEP(8);上述操作所做的事情仅仅有一个:"睡"(啥也不做)八秒.这个长度应该足以被记录在你的慢查询日志里了(我通常推荐针对长于 2 或 3 秒的查询进行慢查询记录).首

MySQL 的慢查询日志

MySQL 的慢查询日志 MySQL 的慢查询日志是 MySQL 提供的一种日志记录,它用来记录在 MySQL 中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的 SQL, 则会被记录到慢查询日志中.long_query_time的默认值为10,意思是运行10s以上的语句. 默认情况下,MySQL数据库并不启动慢查询日志,需要我们手动来设置这个参数, 当然,如果不是调优需要的话,一般不建议启动该参数, 因为开启慢查询日志或多或少会带来一定的性能影响. 慢查询日志支持将

解决:hibernate+mysql中文查询不出结果,SQL语句也正常

今天做一个项目挣点外快hibernate+mysql数据库,Java后台全部正常,查看Java想数据库发送的语句也是正常的,但是中文就是查询不出结果,中文在Java中没有乱码,用new String(or_name.getBytes("ISO-8859-1"), "UTF-8"); 后台没有乱码,尝试了网上的很多方法都不行,getString或者getParamter都不行 最后感觉是mysql的问题,然后将mysql的安装目录下的my.ini中的两个地方改为utf

mysql 查询随机条记录的sql语句和php计算概率

最近在网上找了下mysql查询随机的几个sql,我把最终的记录下来. SELECT * FROM uchome_mtag AS a JOIN (SELECT MAX(tagid) AS id FROM uchome_mtag) AS b ON (a.tagid>=FLOOR(b.id*RAND())) LIMIT 50 我试验后发现一个问题,当你的表里的总数和想要得到的条数很接近时,可能会不理想,有可能你有10条,你想查出随机的8条时,却只给出了5条的结果. 应该是那个大于等于造成的吧. 还有p

mysql(1)—— 详解一条sql语句的执行过程

SQL是一套标准,全称结构化查询语言,是用来完成和数据库之间的通信的编程语言,SQL语言是脚本语言,直接运行在数据库上.同时,SQL语句与数据在数据库上的存储方式无关,只是不同的数据库对于同一条SQL语句的底层实现不同罢了,但结果相同.这有点类似于java中接口的作用,一个接口可以有不同的实现类,不同的实现类对于接口中方法的实现方式可以不同,结果可以相同.这里SQL语言的作用就类似于java中的接口,数据库就类似于java中接口的实现类,SQL语句就类似于java接口中的方法.不同的是java中