`
kavy
  • 浏览: 864556 次
  • 性别: 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 mysql可以把耗时的sql或未使用索引的sql都记录在slow log里,供优化分析使用。 1.mysql慢查询日志启用: mysql慢查询日志对于跟踪有问题的查询非常有用,可以分析出当前程序里有很耗费资源的sql...

    php下转移sqlserver数据到mysql

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

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

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

    mysql实现从导出数据的sql文件中只导入指定的一个表

    不推介,因为数据量太大,很耗时 2.解压dbAll.sql.gz后,通过Java代码读取dbAll.sql中的关于tableA的CREATE语句及INSERT语句等到文件tableA.sql,然后通过tableA.sql导入临时数据库即可进行比较。 3.参见(没试过):

    45-MySQL单表2000万数据查询慢解决方案1

    45-MySQL单表2000万数据查询慢解决方案1

    mysql常用的上移下移存储过程实现

    项目开发中列表展示页面涉及到一些条目的上下移动 ,由于数据量大时,服务端代码比较耗时, 所以我使用mysql 存储过程完成上下移动,比较通用方法,欢迎大家下载学习,共同进步

    MySQL慢SQL语句常见诱因以及解决方法

    如果在一张几千万数据的表中以一个没有索引的列作为查询条件,大部分情况下查询会非常耗时,这种查询毫无疑问是一个慢SQL查询。所以对于大数据量的查询,需要建立适合的索引来优化查询。 虽然很多时候建立了索引,但...

    一次Mysql使用IN大数据量的优化记录

    mysql版本号是5.7.28,表A有390W条记录,使用InnoDB引擎,其中varchar类型字段mac已建立索引,索引方法为B-tree。B表仅有5000+条记录。 有一条SQL指令是这样写的: SELECT * FROM A WHERE mac IN(aa:aa:aa:aa:aa:aa...

    Mysql大型SQL文件快速恢复方案分享

    在使用Mysql数据库的过程中,经常需要使用到备份和恢复数据库,最简单便捷的方法便是通过导出SQL数据文件和导入SQL数据文件来完成备份和恢复,但是随着项目的增长,数据量越来越大,每次恢复就成了一件很头疼的事情。...

    数据库课程设计(sqlserver)--餐厅点餐系统

    传统的点菜方式工作量大、耗时长且易出问题。一项好的餐厅点菜系统可以顺利解决这些问题,并且可以满足许多大型餐厅的需求,从而使工作效率提高且准确性增加,更能给顾客留下一个好的印象。本次课程设计是用数据库的...

    taobao_mysql_kernel_article_table.sql

    淘宝数据库的内核月报非常值得学习和借鉴(地址:http://mysql.taobao.org/monthly/),但首页都是以年份和月份为索引,搜索起来比较耗时,这里做了一张表 可以以文章题目为索引查看,mysqldump导出的。

    解决远程连接mysql很慢的方法(mysql_connect 打开连接慢)

    在进行 ping和route后发现网络通信都是正常的,而且在mysql机器上进行本地连接发现是很快的,所以网络问题基本上被排除了。以前也遇到过一次这样的问题,可后来就不知怎么突然好了,这次又遭遇这样的问题,所以想看...

    18道经典 MySQL 面试题.txt

    12、关心过业务系统里面的sql耗时吗?对慢查询都怎么优化过?13、主键使用自增ID还是UUID,为什么?14、MySQL数据库cpu飙升的话,要怎么处理呢?15、什么是存储过程?有哪些优缺点?16、日常工作中,你是怎么优化sql...

    mysql开启慢查询(EXPLAIN SQL语句使用介绍)

    当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。 1、开启慢查询 1> 查看慢查询是否开启 show variables like "%quer%"; slow_query_log = ON #已开启 2> ...

    基于QT+Mysql实现的疫情下低风险旅行模拟系统.zip

    MySQL模块:实现数据库连接,根据sql语句查找数据并返回QSqlQuery类型 Way模块:定义一个类,用于存放路径的时刻表,包含起止城市、起止时间、交通工具、耗时 Main:实现日志功能 详细介绍参考:...

    MYSQL速度慢的问题 记录数据库语句

    需要开启一个慢查询输出的一个机关:log_slow_queries。... 这样MySQL就会把耗时>=3秒的SQL语句给记录下来,并输出到一个慢查询日志文件中。问题来了,这个慢查询日志文件在什么地方呢?如下,在MYSQL客户端中执行下

    Python实现 多进程导入CSV数据到 MySQL

    对于这个量级的数据,用简单的单进程/单线程导入 会耗时很久,最终用了多进程的方式来实现。具体过程不赘述,记录一下几个要点: 批量插入而不是逐条插入 为了加快插入速度,先不要建索引 生产者和消费者模型,...

    MySQL优化案例系列-mysql分页优化

    通常,我们会采用ORDER BY LIMIT start, offset 的方式来...一般而言,分页SQL的耗时随着 start 值的增加而急剧增加,我们来看下面这2个不同起始值的分页SQL执行耗时: yejr@imysql.com> SELECT * FROM `t1` WHERE f

    关于MySQL数据迁移–data目录直接替换注意事项的详解

    由于数据量较大,直接做dump耗时太长,故而采用如下方式处理:首先,在服务器B上安装了与服务器A同版本的MySQL,停止MySQL服务,将安装后的data目录删除;然后,服务器A锁住全部表,从服务器A将整个data目录和数据...

Global site tag (gtag.js) - Google Analytics