美文网首页
Mysql慢查询日志

Mysql慢查询日志

作者: 王小冬 | 来源:发表于2020-03-11 18:24 被阅读0次

Mysql慢查询日志

数据库的慢查询是影响项目性能的一大因素,对于数据库我们要优化SQL,首先要找到需要优化的SQL,这就需要我们知道sql执行时间等信息,除了使用SHOW PROFILES;外,mysql也提供了“慢查询日志”功能,用来记录查询时间超过某个设定值的SQL,这将极大程度帮助我们快速定位到症结所在,以便对症下药。

一、慢查询配置

关于慢查询日志,主要涉及三个参数:

  • slow_query_log :是否开启慢查询日志功能(必填)
  • long_query_time :超过设定值,将被视作慢查询,并记录至慢查询日志文件中(必填)
  • slow_query_log_file :慢查询日志文件(不必填),可以通过show variables like '%slow_query%';查询日志位置

打开慢查询日志有两种方式:

1. 通过命令行

不需要重启命令行,临时性的,退出mysql终端就失效。

# 以下操作管理员才有权限

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

# 设置查询“超时”时间(这里为了方便日志打印,将超过0.001s的都作为慢查询)
mysql> set GLOBAL long_query_time = 0.001;
Query OK, 0 rows affected (0.00 sec)

2. 通过配置文件

需要重启mysql

# 慢日志相关配置
slow_query_log = ON
long_query_time = 0.001
slow_query_log_file = /usr/local/mysql/data/slow.log

二、慢日志查询

如果操作正确,那么在日志里面就会看到类似下面的:

# Time: 200303 14:54:38
# User@Host: wangjun[wangjun] @ localhost []
# Thread_id: 47  Schema: scujoo  QC_hit: No
# Query_time: 0.024923  Lock_time: 0.000130  Rows_sent: 3488  Rows_examined: 3488
# Rows_affected: 0  Bytes_sent: 354872
SET timestamp=1583218478;
select * from account;
/usr/sbin/mysqld, Version: 10.3.15-MariaDB-1-log (Raspbian testing-staging). started with:
Tcp port: 0  Unix socket: /run/mysqld/mysqld.sock
Time            Id Command  Argument
# Time: 200303 15:05:30
# User@Host: [root] @ localhost []
# Thread_id: 8  Schema: mysql  QC_hit: No
# Query_time: 0.001743  Lock_time: 0.000168  Rows_sent: 1  Rows_examined: 1
# Rows_affected: 0  Bytes_sent: 252
use mysql;
SET timestamp=1583219130;
show variables like 'datadir';
# User@Host: [root] @ localhost []
# Thread_id: 10  Schema:   QC_hit: No
# Query_time: 0.007002  Lock_time: 0.000238  Rows_sent: 36  Rows_examined: 69
# Rows_affected: 0  Bytes_sent: 2391
SET timestamp=1583219130;
select concat('select count(*) into @discard from `',
                    TABLE_SCHEMA, '`.`', TABLE_NAME, '`') 
      from information_schema.TABLES where TABLE_SCHEMA<>'INFORMATION_SCHEMA' and TABLE_SCHEMA<>'PERFORMANCE_SCHEMA' and ( ENGINE='MyISAM' or ENGINE='Aria' );
# Time: 200303 15:06:41

相关文章

  • Mysql 慢查询日志

    Mysql 慢查询日志 慢查询日志 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中...

  • MySQL慢查询日志总结

    MySQL慢查询日志总结 慢查询日志概念 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MyS...

  • MySQL慢查询日志如何开启以及分析

    1、MySQL慢查询日志是什么 (1)MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录MySQL中...

  • 慢查询日志

    1、慢查询日志介绍 慢查询日志是什么? 1.MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在My...

  • mysql调优及常用命令

    mysql常用命令 慢查询日志 mysqlddumpslow(查看慢查询日志) mysql5.7(虚拟列) mys...

  • 开启MySQL慢查询日志

    查询慢日志开关是否开启 打开慢查询日志开关 再次查询,发现开关打开了 查询mysql安装路径 慢查询日志默认是放在...

  • mysql 开启慢查询及其用mysqldumpslow做日志分析

    mysql 开启慢查询 mysql慢查询日志是mysql提供的一种日志记录,它是用来记录在mysql中相应时间超过...

  • MySQL之binlog日志、undo日志、redo日志

    一、MySQL常用的几种日志 MySQL主要包含以下几种日志: 错误日志 查询日志 慢查询日志 事务日志 [und...

  • mysql-慢查询日志

    1、什么是慢查询日志 mysql慢查询日志是mysql提供的一种日志记录,它用来记录在MySQL中响应时间超过...

  • Mysql-日志-慢查询日志

    本篇文章主要记述Mysql慢查询的学习过程,内容目录如下:慢查询日志是什么?慢查询日志开启和配置慢查询日志相关操作...

网友评论

      本文标题:Mysql慢查询日志

      本文链接:https://www.haomeiwen.com/subject/ktehjhtx.html