`
tomcat_oracle
  • 浏览: 311874 次
社区版块
存档分类
最新评论

MYSQL的慢查询两个方法

阅读更多
  对于排查问题找出性能瓶颈来说,最容易发现并解决的问题就是MYSQL的慢查询以及没有得用索引的查询。
  =========================================================
  方法一: 这个方法我正在用,呵呵,比较喜欢这种即时性的。
  Mysql5.0以上的版本可以支持将执行比较慢的SQL语句记录下来。
  mysql> show variables like 'long%';     注:这个long_query_time是用来定义慢于多少秒的才算“慢查询”
  +-----------------+-----------+
  | Variable_name   | Value     |
  +-----------------+-----------+
  | long_query_time | 10.000000 |
  +-----------------+-----------+
  1 row in set (0.00 sec)
  mysql> set long_query_time=1;   注: 我设置了1, 也就是执行时间超过1秒的都算慢查询。
  Query OK, 0 rows affected (0.00 sec)
  mysql> show variables like 'slow%';
  +---------------------+---------------+
  | Variable_name       | Value         |
  +---------------------+---------------+
  | slow_launch_time    | 2             |
  | slow_query_log      | ON            |           注:是否打开日志记录
  | slow_query_log_file | /tmp/slow.log |      注: 设置到什么位置
  +---------------------+---------------+
  3 rows in set (0.00 sec)
  mysql> set global slow_query_log='ON'   注:打开日志记录
  一旦slow_query_log变量被设置为ON,mysql会立即开始记录。
  /etc/my.cnf   里面可以设置上面MYSQL全局变量的初始值。
  long_query_time=1
  slow_query_log_file=/tmp/slow.log
  ====================================================
  方法二:mysqldumpslow命令
  /path/mysqldumpslow -s c -t 10 /tmp/slow-log
  这会输出记录次数最多的10条SQL语句,其中:
  -s, 是表示按照何种方式排序,c、t、l、r分别是按照记录次数、时间、查询时间、返回的记录数来排序,ac、at、al、ar,表示相应的倒叙;
  -t, 是top n的意思,即为返回前面多少条的数据;
  -g, 后边可以写一个正则匹配模式,大小写不敏感的;
  比如
  /path/mysqldumpslow -s r -t 10 /tmp/slow-log
  得到返回记录集最多的10个查询。
  /path/mysqldumpslow -s t -t 10 -g “left join” /tmp/slow-log
  得到按照时间排序的前10条里面含有左连接的查询语句。
1
4
分享到:
评论

相关推荐

    关于Mysql通用查询日志和慢查询日志分析

    这里主要介绍下比较常用的两个功能:通用查询日志和慢查询日志。 1、通用查询日志:记录建立的客户端连接和执行的语句。 2、慢查询日志:记录所有执行时间超过longquerytime秒的所有查询或者不使用索引的查询 一、...

    MySQL-slow-query-log-viewer:用于解析和查看MySQL慢查询日志输出的简单工具

    MySQL慢查询日志查看器这是一个用于解析MySQL慢查询日志并以一种很好的,易于阅读的格式显示它的简单工具。 该工具使用我自己PHP库gumbercules / mysqlslow进行繁重的工作。 我写了这个工具来满足两个需求: 我受够...

    mysql优化配置大全

    mysql慢可能是配置不对,阅读一下这个可能对你有帮助 在Apache, PHP, mysql的体系架构中,MySQL对于性能的影响最大,也是关键的核心部分。对于Discuz!论坛程序也是如此,MySQL的设置是否合理优化,直接 影响到论坛的...

    高性能MySQL(第3版).part2

    6.3.1一个复杂查询还是多个简单查询201 6.3.2切分查询202 6.3.3分解关联查询203 6.4查询执行的基础204 6.4.1MySQL客户端/服务器通信协议205 6.4.2查询缓存208 6.4.3查询优化处理208 6.4.4查询执行引擎222 ...

    mysql分页的limit参数简单示例

    Mysql的分页的两个参数 select * from user limit 1,2 ... 您可能感兴趣的文章:详解MySQL的limit用法和分页查询语句的性能分析MYSQL分页limit速度太慢的优化方法mysql limit分页优化方法分享Mysql limit

    mysql数据库my.cnf配置文件

    # 注:这两个参数不支持动态改变,需要把该参数加入到my.cnf里,修改完后重启MySQL服务,允许值的范围从 1-64 innodb_thread_concurrency = 0 # 默认设置为 0,表示不限制并发数,这里推荐设置为0,更好去发挥CPU多核...

    Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法

    对比下面两个脚本的速度: Windows 7 用 localhost 连接本地 MySQL,速度会很慢。 Windows 7 用 127.0.0.1 连接本地 MySQL,速度则是正常的。 my.ini里配置了 bind-address=127.0.0.1  用localhost连接本地...

    MySQL中基本的多表连接查询教程

     由于其返回的结果为被连接的两个数据表的乘积,因此当有WHERE, ON或USING条件的时候一般不建议使用,因为当数据表项目太多的时候,会非常慢。一般使用LEFT [OUTER] JOIN或者RIGHT [OUTER] JOIN  2. 内连接INNER ...

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

    面试高频题目,一条SQL语句为...出现这种情况呢,就需要考虑以下两种情况: 1. 刷脏页,写磁盘 首先说明脏页的概念:当内存数据页跟磁盘数据页内容不一致的时候,我们称这个内存页为“脏页”。内存数据写入到磁盘后,

    PHP远程连接MYSQL数据库非常慢的解决方法

    如果一个问题出现两次,那么这个问题就值得去研究下了,上次客户说MYSQL数据库很慢,我还在想,不会是PHP的问题吧?

    详解Mysql多表联合查询效率分析及优化

     由于其返回的结果为被连接的两个数据表的乘积,因此当有WHERE, ON或USING条件的时候一般不建议使用,因为当数据表项目太多的时候,会非常慢。一般使用LEFT [OUTER] JOIN或者RIGHT [OUTER] JOIN  2. 

    Mysql数据库中把varchar类型转化为int类型的方法

    在上篇文章给大家讲了MySQL数据库中把int转化varchar引发的慢查询,本文给大家介绍Mysql数据库中把varchar类型转化为int类型的方法,一起看看吧! mysql为我们提供了两个类型转换函数:CAST和CONVERT,现成的东西...

    MySQLDBA运维笔记.pdf

    1.2.6 创建存放两个 mysql 实例的数据目录...............................................................11 1.2.7 创建两个 mysql 多实例的配置文件.............................................................

    MYSQL 关于两个经纬度之间的距离由近及远排序

    代码如下:select *,(2 * 6378.137* ASIN(SQRT(POW(SIN(PI()*(111....20差不多就是这样的,做个记录但是我觉得这样还是很慢,因为我的坐标都是通过百度获取的,我的想法是能够转成平面坐标更好,这样更好计算

    Mysql效率优化定位较低sql的两种方式

    通过慢查询日志定位那些执行效率较低的 SQL 语句,用 –log-slow-queries[=file_name] 选项启动时, mysqld 会 写一个包含所有执行时间超过 long_query_time 秒的 SQL 语句的日志文件,通过查看这个日志文件定位效率...

    从MySQL到Redis的简单数据库迁移方法

    一个约八百万行数据的mysql表,原本导入到redis中需要90分钟,使用这个方法后,只需要两分钟。不管你信不信,反正我是信了。 Mysql到Redis的数据协议 redis-cli命令行工具有一个批量插入模式,是专门为批量执行命令...

    Mac下mysql 5.7.13 安装配置方法图文教程

    这种是要用命令行安装 可能中间会出现各种问题 另外就是直接去官网下载 DMG格式的安装包 (Ps:最好直接用迅雷下载 就不会因为网速的问题 下载特别慢 和正常下载网速差不多 我只用了两分钟) 1.官网下载的安装包:...

Global site tag (gtag.js) - Google Analytics