MySql慢查询

首先查看目前Mysql慢查询的参数情况

mysql> show variables like '%slow%';
+---------------------------+------------------------------------+
| Variable_name             | Value                              |
+---------------------------+------------------------------------+
| log_slow_admin_statements | OFF                                |
| log_slow_slave_statements | OFF                                |
| slow_launch_time          | 2                                  |
| slow_query_log            | ON                                 |
| slow_query_log_file       | /var/lib/mysql/i-apsl772j-slow.log |
+---------------------------+------------------------------------+
5 行于数据集 (0.22 秒)

slow_query_log       -- 是否开启的慢查询日志记录
slow_query_log_file  -- 慢查询日志的文件位置

如果 slow_query_log 是 OFF ,可以通过如下命令来开启慢查询日志;

mysql> set global slow_query_log = ON;
Query OK, 0 rows affected (0.02 秒)

下面来看一下慢查询的时间,执行如下命令;同时可以通过如下命令来设置慢查询的时间;

mysql> show variables like '%long_query%';
+-----------------+----------+
| Variable_name   | Value    |
+-----------------+----------+
| long_query_time | 2.000000 |
+-----------------+----------+
1 行于数据集 (0.03 秒)

mysql> set long_query_time=2;
Query OK, 0 rows affected (0.02 秒)

下面来执行一个比较复杂的查询,来看一下是否能记录到慢查询日志中;下面只是一个例子,可以根据实际情况来写,命令执
行完成后打开上面慢查询的日志文件。可以看到慢查询已经记录了新的记录。

select * from xhy_device_log xl,xhy_device xd where xl.mcode = xd.mcode;

[root@i-apsl772j ~]# cat  /var/lib/mysql/i-apsl772j-slow.log
/usr/sbin/mysqld, Version: 5.7.10 (MySQL Community Server (GPL)). started with:
Tcp port: 3306  Unix socket: /var/lib/mysql/mysql.sock
Time                 Id Command    Argument
# Time: 2016-10-12T04:31:48.245466Z
# User@Host: root[root] @  [125.33.118.101]  Id: 886963
# Query_time: 30.872068  Lock_time: 0.000198 Rows_sent: 65032  Rows_examined: 121726
use xunheyun_device;
SET timestamp=1476246708;
select * from xhy_device_log xl,xhy_device xd where xl.mcode = xd.mcode;

上面介绍了如何记录慢查询的日志,稍后会介绍如何对 SQL 进行优化。本文接下来再写一些慢查询相关的内容;

查看文件输入方式;

mysql> show variables like '%output%';
+----------------------------+-------+
| Variable_name              | Value |
+----------------------------+-------+
| innodb_status_output       | OFF   |
| innodb_status_output_locks | OFF   |
| log_output                 | FILE  |
+----------------------------+-------+
3 行于数据集 (0.05 秒)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 如何在MySQL中查找效率慢的SQL语句呢?这可能是困扰很多人的一个问题,MySQL通过慢查询日志定位那些执行效率...
    点融黑帮阅读 37,127评论 3 37
  • 论mysql5.7.13性能优化之索引优化 本篇文章是使用MySQL5.7.17版本! 查看MySQL是否开启慢查...
    霄峰阅读 380评论 0 3
  • 我们将超过指定时间的SQL语句查询称为慢查询 一、慢查询的体现 慢查询主要体现在慢上,通常意义上来讲,只要返回时间...
    AQ王浩阅读 2,393评论 0 13
  • 当我真的愿意看见自己时 我可能还会痛 但已经不再抱怨 我深知 这痛 只因遇见真实的自己 曾经那个不懂爱的自己 透过...
    小贝窝阅读 425评论 0 0
  • 今天凌晨四点五十醒了,拿过手机发现它自己亮了,以为是有电话进来,~手机升级!还有五分钟到五点的时候,开始心跳加...
    糖月阳阅读 96评论 0 1