`
kavy
  • 浏览: 888130 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

mysql记录耗时的sql

 
阅读更多

author:skate
time:2012/02/17

mysql记录耗时的sql

mysql可以把耗时的sql或未使用索引的sql都记录在slow log里,供优化分析使用。

1.mysql慢查询日志启用:

mysql慢查询日志对于跟踪有问题的查询非常有用,可以分析出当前程序里有很耗费资源的sql语句,那如何打开mysql的慢查询日志记录呢?

mysql> show variables like 'log_slow_queries';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| log_slow_queries | OFF   | 
+------------------+-------+
1 row in set (0.01 sec)

mysql> 

这说明slow log功能没有启用,要启用需要修改mysql的配置文件,在配置文件"[mysqld]"里添加如下俩参数:

long_query_time=1
log-slow-queries=/var/mysql/logs/slow.log

说明
long_query_time
此参数表示的是慢查询的度量时间,单位是秒,最小是1,缺省值是10,凡是执行时间超过long_query_time的sql语句都会记录到慢查询日志中

log-slow-queries[=file_name]
file_name参数可选,缺省值是host_name-slow.log,如果指定了file_name参数的话,mysql就会把慢查询的日志记录到file_name所设定的文件中,如果file_name提供的是一个相对路径,mysql会把日志记录到mysql的data目录中,这个参数只能在配置文件里添加,无法在命令行里执行。

2.将未使用索引查询也记录到slow log中的配置
在mysql的启动配置文件或命令行参数中增加“log_queries_not_using_indexes” 参数就可以把未使用索引查询语句添加到slow log里了。

样例如下:
[root@localhost mysqlsla-2.03]# more /etc/my.cnf 
[mysqld]
datadir=/var/lib/mysql
log_bin=/tmp/mysql/bin-log/mysql-bin.log
log_bin=ON
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1


log_slow_queries=/tmp/127_slow.log
long_query_time=1
log_queries_not_using_indexes

.......

重启mysql后,检查结果如下:

mysql> show variables like 'log_slow_queries';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| log_slow_queries | ON    | 
+------------------+-------+
1 row in set (0.00 sec)

mysql> show variables like 'long_query_time';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| long_query_time | 2     | 
+-----------------+-------+
1 row in set (0.00 sec)

mysql>

 

 

--------end------

 

 

转自:http://blog.csdn.net/wyzxg/article/details/7269020

分享到:
评论

相关推荐

    mysql记录耗时的sql实例详解

    以下是对MySQL记录耗时SQL实例的详细解释。 1. **启用慢查询日志** 慢查询日志默认是关闭的,可以通过设置`log_slow_queries`变量来启用。在MySQL的配置文件(通常是`my.cnf`或`my.ini`)的`[mysqld]`段中,添加...

    数据库耗时sql追踪

    ### 数据库耗时SQL追踪知识点详解 #### 一、引言 在数据库管理与优化过程中,经常需要对执行效率低下的SQL语句进行追踪与分析,以便找出性能瓶颈并加以改进。本文将围绕“数据库耗时SQL追踪”的主题展开讨论,通过...

    SQLSERVER转MYSQL工具 mss2sql

    《SQLSERVER到MYSQL的数据迁移工具mss2sql详解》 在数据库管理中,有时我们需要将数据从一个数据库系统迁移到另一个数据库系统。SQL Server和MySQL是两种广泛应用的关系型数据库管理系统,各自有着不同的特点和优势...

    sql server ,mysql,starrocks性能对比.docx

    ### SQL Server, MySQL, StarRocks 性能对比分析 #### 测试背景及环境 本文旨在通过实际场景下的性能测试来对比SQL Server、MySQL以及StarRocks这三种数据库管理系统在处理相同查询时的表现。测试环境分别为: - ...

    SQL Server转Mysql的工具mss2sql

    同时,该工具还能处理数据迁移,将SQL Server中的记录复制到MySQL中,确保数据的一致性。这对于需要将大量历史数据迁移到新数据库的企业来说,是非常重要的。 在使用mss2sql之前,用户需要确保对SQL Server和MySQL...

    千万级数据Sql Server 与Mysql分析

    当数据增加到 500 万条的时候,SQL Server 2008 耗时 34 秒,相当于 Mysql 在 265 万时的耗时时间。 当数据增加到 1000 万时,Mysql 已经内存溢出,需要耗时 7 分 31 秒。 结论 通过对比分析,数据量越大,SQL ...

    php下转移sqlserver数据到mysql

    执行前须在mysql中建立和sqlserver中对应表字段相符的对应表(只有结构没有数据)。运行本文件一次即可,如运行两次,将清空mysql相关表的所有数据后,再次复制,不会累加。复制耗时根据数据量大小而定,每秒可复制5...

    性能测试 mysql 耗时分析工具

    MySQL性能测试和耗时分析是数据库管理中的关键环节,它涉及到数据库优化、查询效率提升以及系统整体性能的改进。在本篇文章中,我们将深入探讨如何使用各种工具来对MySQL进行性能测试和耗时分析。 首先,我们要理解...

    【MySQL数据库】一条SQL语句为什么执行这么慢?

    没有索引时,MySQL需要全表扫描,对大型表来说,这可能非常耗时。合理地为查询涉及的字段创建索引可以大大提高查询速度。 2. **对字段进行函数操作** 在查询条件中对字段进行函数操作(如`DATE_FORMAT()`或`UPPER...

    sqlmonitor监控oracle,mysql,db2正在执行的sql

    - SQL历史记录:保存SQL执行的历史记录,便于分析长期存在的性能问题。 - 统计分析:统计各种SQL语句的执行频率,找出最常执行或最耗时的SQL。 - 查询优化:提供SQL优化建议,帮助改进查询效率。 4. **使用方法*...

    MySQL误操作后快速恢复数据的方法

    binlog2sql是一款开源的MySQL binlog解析工具,它能够帮助我们解析binlog,生成误操作前后的SQL语句,从而实现快速的数据恢复。 要使用binlog2sql,首要条件是MySQL服务器已经开启了binlog,并配置了相关的参数,...

    合服SQL(Mysql版),真实可用

    游戏合服SQL(Mysql版),真实可用,执行效率高,耗时短;

    SQLTracker,抓取sql语句的工具

    3. **日志记录与分析**:该工具会将捕获的SQL语句记录下来,并提供分析功能,帮助用户识别频繁执行的SQL、耗时较长的SQL,从而找到可能的性能瓶颈。 4. **可视化展示**:SQLTracker通常会提供直观的图表和统计信息...

    mysql百万级测试数据下载 300W条

    首先,`test.sql`文件是一个MySQL数据库的SQL脚本文件,通常包含创建表结构、插入数据等操作。在这个场景中,它包含了300万条记录,这对于测试数据库性能、查询优化、并发处理能力等提供了充足的数据基础。 1. **...

    Mysql查询流程分析

    在深入理解MySQL查询流程之前,我们首先需要明确几个基本概念:MySQL是一种关系型数据库管理系统,它支持SQL(Structured Query Language)语言,用于管理存储在表格中的数据。MySQL查询流程是指当用户向MySQL服务器...

    MysqlLog.rar

    MySQL日志是数据库管理系统中非常重要的一个组成部分,它记录了数据库的各种操作,包括查询、插入、更新和删除等。在Java环境下,开发人员有时需要对MySQL数据库进行监控,以了解SQL语句的执行过程,这有助于优化...

    【MySQL】SQL性能分析 (七).pdf

    - 慢查询日志是一种特殊的日志文件,用于记录所有执行时间超过指定阈值(默认10秒)的SQL语句。它是诊断性能瓶颈的重要工具之一。 - **配置与启用**: - 通常情况下,慢查询日志需要手动启用。首先检查系统变量`...

    sql,mysql数据库的封装操作,极其方便使用

    然而,传统的数据库操作通常需要编写大量的SQL语句,这既耗时又容易出错。为了解决这一问题,一些框架和工具应运而生,比如在描述中提到的Hxj.Data,它提供了一种更简便的方式来处理数据库操作,使得程序员可以像...

Global site tag (gtag.js) - Google Analytics