`

<转>深入mysql慢查询设置的详解

 
阅读更多
原链接:http://www.jb51.net/article/38274.htm

在web开发中,我们经常会写出一些SQL语句,一条糟糕的SQL语句可能让你的整个程序都非常慢,超过10秒一般用户就会选择关闭网页,如何优化SQL语句将那些运行时间 比较长的SQL语句找出呢?MySQL给我们提供了一个很好的功能,那就是慢查询!所谓的慢查询就是通过设置来记录超过一定时间的SQL语句!那么如何应用慢查询呢?
1.开启MySQL的慢查询日志功能
默认情况下,MySQL是不会记录超过一定执行时间的SQL语句的。要开启这个功能,我们需要修改MySQL的配置文件,windows下修改my.ini,Linux下修改my.cnf文件,在[mysqld]最后增加如下命令:
复制代码 代码如下:

slow_query_log
long_query_time = 1

2.测试慢查询日志功能
(1)进入MySql控制台,执行如下语句:
复制代码 代码如下:

select sleep(2);

mysql> select sleep(2);
+----------+
| sleep(2) |
+----------+
|        0 |
+----------+
1 row in set (2.12 sec)
(2)查看慢查询日志文件think-slow.log,在文件最后发现:
复制代码 代码如下:

# Time: 121120 20:06:23
# User@Host: root[root] @ localhost [127.0.0.1]
# Query_time: 2.104120  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0
SET timestamp=1353413183;
select sleep(2);

3.解释:
(1)slow_query_log 这句是开启记录慢查询功能,slow_query_log=0关闭;slow_query_log=1开启(这个1可以不写)
(2)long_query_time = 1 这句是记录超过1秒的SQL执行语句
(3)那么这个日志文件存放在什么地方呢?
默认是放在mysql的data目录,并且文件名为host_name-slow.log即 主机名-slow.log,比如在笔者的开发机上就是THINK-slow.log(因为偶用的Thinkpad,呵呵)
(4)如果日志文件不想放在data目录,我们可以通过如下配置指定存放的目录及日志文件名:
slow_query_log_file=file_name
其中file_name就是你的存放日志的目录和文件名,在这里注意有的资料上可能是log-slow-queries=file_name,这个在mysql5.5版已经过时!
4.如何记录低于1s的慢查询记录呢?
MySQL5.21版以前long_query_time 参数的单位是秒,默认值是10。这相当于说最低只能记录执行时间超过 1 秒的查询,怎么记录查询时间超过100毫秒的SQL语句记录呢?在mysql5.21+后版本支持毫秒记录
(1)进入MySql控制台,运行如下sql语句:
复制代码 代码如下:

set global long_query_time=0.1

该句是设置记录慢查询超过时间100ms的SQL,记住要重启mysql才能生效!
(2)测试
进入mysql控制台,执行如下sql语句:
复制代码 代码如下:

select sleep(0.5);

查看慢查询日志文件,我们看到最后添加的新信息:
复制代码 代码如下:

# Time: 121120 20:42:06
# User@Host: root[root] @ localhost [127.0.0.1]
# Query_time: 0.500028  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0
SET timestamp=1353415326;
select sleep(0.5);
分享到:
评论

相关推荐

    phpmyadmin上传Webshell总结.docx

    利用MySQL的日志功能,比如查询日志或慢查询日志,将Webshell写入这些日志文件,然后将日志文件转换为可执行的脚本。 (1)通过查询日志:确保查询日志开启,Webshell将记录在查询日志中。 (2)通过慢查询日志...

    深入mysql慢查询设置的详解

    MySQL的慢查询设置是数据库性能优化的关键工具,它允许管理员追踪和分析运行时间较长的SQL语句,从而改进系统的整体效率。慢查询日志功能默认是关闭的,但可以通过配置来启用,帮助开发者和DBA识别和解决可能导致...

    mysql慢查询使用详解

    MySQL中的慢查询日志是数据库管理员(DBA)的一个重要工具,用于跟踪和分析数据库运行中执行缓慢的SQL语句。通过这些信息,我们可以对数据库的性能问题进行深入分析,从而优化性能,提高系统效率。 首先,慢查询...

    cpp-Slowquery图形化显示MySQL慢日志工具

    "cpp-Slowquery图形化显示MySQL慢日志工具" 指的是一款基于C++语言开发的工具,名为Slowquery,它的主要功能是解析并以图形化方式展示MySQL数据库的慢查询日志。这个工具帮助数据库管理员更直观地理解和分析MySQL...

    (mysql面试题)MySQL中的慢查询日志的作用及其使用方法及代码展示.txt

    ### MySQL慢查询日志的作用与使用详解 #### 一、慢查询日志概述 在MySQL数据库管理中,慢查询日志是一项重要的诊断工具,它能够帮助数据库管理员和开发者识别并解决那些执行时间过长的SQL语句所带来的性能问题。...

    mysql5.1详解简体中文版

    MySQL 5.1是MySQL数据库管理系统的一个重要版本,它在5.0的基础上进行了多项改进和增强,为开发者提供了更高效...这个“mysql5.1详解简体中文版”的教程文件,将帮助读者深入理解这些概念,提升数据库管理和开发技能。

    MySql体系结构中文详解 运维必备

    MySQL提供了多种工具和手段来监控系统状态,如`SHOW STATUS`、`SHOW VARIABLES`、慢查询日志等。通过这些信息,DBA可以识别性能瓶颈并进行优化。 了解MySQL的这些核心组成部分和它们的工作原理,对于运维MySQL...

    mysql 执行计划详解

    此外,MySQL的`mysqldumpslow`工具也是分析慢查询日志的好帮手,它可以按时间、查询次数等对慢查询进行排序,帮助找出性能瓶颈。 在`Explain语法.docx`和`mysqlexplain.ppt`这两个文档中,你将找到更详细的`EXPLAIN...

    深入理解mysql

    ### 深入理解MySQL:核心概念与技术解析 #### 一、MySQL简介与应用场景 MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS),它以其高性能、高可靠性和易于使用而闻名。作为全球最流行的数据库之一,MySQL...

    18道mysql面试题以及答案详解

    12. **SQL 性能优化**:针对慢查询的优化包括分析 SQL 语句,减少不必要的字段和数据加载,使用索引,调整查询结构,考虑分区或分片,以及使用 EXPLAIN 分析查询执行计划。 这些知识点涵盖了 MySQL 的基础和进阶...

    mysql,查询,索引

    ### MySQL索引原理及其应用 #### 一、MySQL索引目的 索引的主要目的在于提高查询效率,通过类似于...通过对索引原理、B+树结构、优化技巧等方面的深入了解,可以有效地解决慢查询等问题,确保数据库系统的高效运行。

    mysql基础理论及安装配置详解.pdf

    本文将深入探讨MySQL的基础理论、安装过程以及配置详解。 **一、MySQL基础理论** 1. **关系型数据库**: MySQL是建立在关系模型基础上的数据库,它以表格的形式存储数据,每个表格称为一个表,表格之间可以通过特定...

    BLOG_MySQL_lhr_Linux下MySQL 5.5、5.6和5.7的RPM、二进制和源码安装.pdf

    ### MySQL在Linux下的安装方法详解 #### 一、引言 在Linux环境下部署MySQL数据库是一项常见且重要的任务。本文档将详细介绍如何在Linux系统中安装MySQL 5.5、5.6和5.7三个不同版本,并分别通过RPM、二进制和源码三...

    MySql从零开始学-必知必会

    2. 查询优化:识别慢查询,使用EXPLAIN分析执行计划,优化SQL语句。 3. 索引失效:避免在索引列上使用函数,避免全表扫描,合理设计索引。 五、存储引擎 1. InnoDB与MyISAM:对比这两种常用的存储引擎,了解它们在...

    mysql全局变量.pdf

    **示例**:假设我们将`long_query_time`设置为2秒,那么任何执行时间超过2秒的SQL查询都将被视为慢查询,并被记录到慢查询日志中。 #### 四、变量的作用域与值域 - **作用域**:指变量适用的范围。例如,`log_slow...

    史上最详细的一线大厂Mysql面试题详解

    本文将深入解析一线大厂MySQL面试中的常见问题,帮助你全面掌握MySQL的核心知识点,提升你的技术竞争力。 一、SQL基础 1. 数据类型:理解各种数据类型如INT、VARCHAR、DATE、TEXT等的使用场景,以及它们之间的区别...

    Mysql的索引详解学习笔记.zip

    本学习笔记将深入探讨MySQL中的索引原理、类型、创建与优化策略,帮助你提升数据库查询效率。 一、索引概念 索引是数据库中用于快速查找数据的数据结构,类似于书籍的目录,可以极大地提高查询速度。没有索引,...

    mysql大全 全面讲解

    本篇文章将深入探讨MySQL的数据类型及其各种操作,旨在为初学者提供一个全面的指南。 一、MySQL数据类型 1. 整数类型:包括TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)和BIGINT。它们分别适用于存储不同范围的...

    mysql 5.6 参数详解.zip

    这篇文档将深入解析MySQL 5.6的关键配置参数,帮助用户更好地理解和优化数据库性能。 1. **InnoDB存储引擎参数**: - `innodb_buffer_pool_size`:这是InnoDB缓存池的大小,用于存储数据和索引。合理的设置可以...

Global site tag (gtag.js) - Google Analytics