当前位置:  数据库>mysql

使用MySQL Slow Log来解决MySQL CPU占用高的问题

    来源: 互联网  发布时间:2014-10-08

    本文导语:  但是怎么找到是哪个SQL语句的执行时间过长呢?可以通过MySQL Slow Log来找,详解如下。 首先找到MySQL的配置文件my.cnf,根据不同版本的mysql开启慢查询的配置也不一样 mysql 5.0 [mysqld] long_query_time = 1 log-slow-queries = /var/log/mysql/slow.l...

但是怎么找到是哪个SQL语句的执行时间过长呢?可以通过MySQL Slow Log来找,详解如下。

首先找到MySQL的配置文件my.cnf,根据不同版本的mysql开启慢查询的配置也不一样


mysql 5.0

[mysqld]
long_query_time = 1
log-slow-queries = /var/log/mysql/slow.log


mysql 5.1

[mysqld]
long_query_time = 1
slow_query_log=1
slow_query_log_file = /var/log/mysql/slow.log


long_query_time 是指执行超过多久的sql会被log下来,这里是1秒。
log-slow-queries和slow_query_log_file 设置把日志写在哪里


把上述参数打开,运行一段时间,就可以关掉了,省得影响生产环境

接下来就是分析了,我这里的文件名字叫 /var/log/mysql/slow.log。
先mysqldumpslow –help下,主要用的是


-s ORDER what to sort by (t, at, l, al, r, ar etc), ‘at' is default
-t NUM just show the top n queries
-g PATTERN grep: only consider stmts that include this string

-s,是order的顺序,说明写的不够详细,主要有
c,t,l,r和ac,at,al,ar,分别是按照query次数,时间,lock的时间和返回的记录数来排序,前面加了a的时倒序
-t,是top n的意思,即为返回前面多少条的数据
-g,后边可以写一个正则匹配模式,大小写不敏感的


mysqldumpslow -s c -t 20 /var/log/mysql/slow.log
mysqldumpslow -s r -t 20 /var/log/mysql/slow.log

上述命令可以看出访问次数最多的20个sql语句和返回记录集最多的20个sql。


mysqldumpslow -t 10 -s t -g “left join” /var/log/mysql/slow.log
这个是按照时间返回前10条里面含有左连接的sql语句。

用了这个工具就可以查询出来那些sql语句是性能的瓶颈,进行优化,比如加索引,该应用的实现方式等。

    
 
 

您可能感兴趣的文章:

  • MySQL Workbench的下载安装与使用教程
  • mysql使用问题!急...
  • java将类序列化并存储到mysql(使用hibernate)
  • 如何在linux下使用mysql
  • mysql的SQL_NO_CACHE(在查询时不使用缓存)和sql_cache用法
  • 请问MYSQL在LINUX下如何配置(使用)
  • mysql数据库下载安装教程和使用技巧
  • 使用mysql中遇到的几个问题
  • 初学,关于linux下使用mysql以及卸载的问题
  • 我在linux8.0下装了mysql,已经运行进程mysqld,但怎么设置和使用它呢?
  • linux 下怎么使用mysql-administrator?
  • 教你如何快捷的使用cmd访问mysql小技巧
  • 使用dreamhost空间实现MYSQL数据库备份方法
  • 有关linux下MySql的安装和使用
  • 急!急!急!急!使用MySQL出现的问题
  • python文件读写并使用mysql批量插入示例分享(python操作mysql)
  • linux使用mysql删除数据库的问题,谢谢!
  • 使用JDBC,用什么方法可以知道MYSQL中有几个库,每个库有几个表?
  • mysql求和函数使用示例
  • mysql中的Load data的使用方法
  • 在linux下如何将cpu和内存的使用率保存到mysql或者日志文件中?
  • 有没有使用最新内核的占用空间较小的linux操作系统
  • 该怎么样减小使用LINUX时,所占用的内存,
  • 使用完ejb对象,快速释放出它占用的空间,而不删除数据库记录,是用的那条语句?
  • 求助:java实现显示linux下的cpu占用率,内存使用情况,硬盘占用情况
  • 使用 unlink 函数为什么进程始终占用该文件
  • Linux 内存占用、使用情况请教
  • LINUX下如何获取当前进程的占用页数和使用的内存区间数
  • 如何使用top查看程序的内存占用情况?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 解决多级索引速度慢的问题可否像解决多级页表那样使用TLB?
  • REDHAT 4 bond 模块怎么使用?(解决付10元)
  • pydev使用wxpython找不到路径的解决方法
  • 解决jsp页面使用网络路径访问图片的乱码问题
  • 使用JB编程时,光标的定位和实际输入的总是有偏差,请问如何解决?谢谢!!!
  • 我使用的是root用户登陆,但却不能编辑/etc/profile文件,该如何解决。
  • window2000使用ftp登陆solaris7失败,该如何解决?
  • 求助!第一次使用gdb,出问题不懂怎么解决
  • 谢谢anhy(鎏)帮我解决远程使用X Window问题
  • 升级内核后,usb鼠标不可以使用了,如何解决?
  • 请教高手,linux下使用libusb_submit_transfer,返回-1,errno = 16,如何解决?
  • JQuery插件fancybox无法在弹出层使用左右键的解决办法
  • 使用SecureCRT连接到Linxu后,中断的汉字乱码,怎么解决?
  • 我在linux8.0下装了mysql,已经运行进程mysqld,但怎么设置和使用它呢? iis7站长之家
  • jquery组件使用中遇到的问题整理及解决
  • Eclipse下使用ANT编译提示OutOfMemory的解决方法
  • 使用iText组件不能在表格中显示中文?那位大侠遇到过类似问题?怎么解决?
  • 我使用一个软件的提示信息,大家帮我看看是怎么回事?如何解决?
  • 使用swap指令和Test and set指令设计一个解决N个进程互斥问题的算法
  • 急,jsp如何使用jdbc连接DB2,解决就结贴
  • C++ I/O 成员 tellg():使用输入流读取流指针
  • 在测试memset函数的执行效率时,分为使用Cash和不使用Cash辆种方式,该如何控制是否使用缓存?
  • C++ I/O 成员 tellp():使用输出流读取流指针
  • 求ibm6000的中文使用手册 !从来没用过服务器,现在急需使用它,不知如何使用! 急!!!!!
  • Python不使用print而直接输出二进制字符串
  • 请问:在使用oracle数据库作开发时,是使用pro*c作开发好些,还是使用库函数如oci等好一些啊?或者它们有什么区别或者优缺点啊?
  • Office 2010 Module模式下使用VBA Addressof
  • 急求结果!!假设一个有两个元素的信号量集S,表示了一个磁带驱动器系统,其中进程1使用磁带机A,进程2同时使用磁带机A和B,进程3使用磁带机B。
  • windows下tinyxml.dll下载安装使用(c++解析XML库)
  • c#中SAPI使用总结——SpVoice的使用方法
  • tcmalloc内存泄露优化c++开源库下载,安装及使用介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3