欢迎光临
我们一直在努力

【MySQL高阶】6.MySQL数据目录,日志

文章目录

  • 2. MySQL数据目录
  • 3. 日志简介
    • 3.1 一般查询日志和慢查询日志的输出形式
      • 3.1.1 启动时的日志控制
      • 3.1.2 运行时的日志控制
      • 3.1.3 使用日志表优点
    • 3.2 一般查询日志
      • 3.2.1 一般查询日志示例
    • 3.3 慢查询日志
      • 3.3.1 慢查询日志参数
      • 3.3.2 慢查询日志内容
        • 3.3.2.1 FILE格式
        • 3.3.2.2 TABLE格式
      • 3.3.3 慢查询日志示例

2. MySQL数据目录

MySQL 服务器的管理信息、业务数据、日志文件、磁盘缓冲文件默认存储在数据目录下,数据目录一般包含以下内容:

root@yudukai:/var/lib/mysql# ll
total 93556
drwx—— 9 mysql mysql 4096 May 11 14:09 ./
drwxr-xr-x 54 root root 4096 Nov 3 2025 ../
-rw-r—– 1 mysql mysql 56 Oct 27 2025 auto.cnf
-rw-r—– 1 mysql mysql 157 May 10 11:43 binlog.000102
-rw-r—– 1 mysql mysql 180 May 10 11:43 binlog.000103
-rw-r—– 1 mysql mysql 180 May 10 11:53 binlog.000104
-rw-r—– 1 mysql mysql 637 May 10 11:58 binlog.000105
-rw-r—– 1 mysql mysql 602 May 10 12:04 binlog.000106
-rw-r—– 1 mysql mysql 180 May 10 12:48 binlog.000107
-rw-r—– 1 mysql mysql 1957657 May 11 00:00 binlog.000108
-rw-r—– 1 mysql mysql 157 May 11 00:00 binlog.000109
-rw-r—– 1 mysql mysql 128 May 11 00:00 binlog.index
-rw——- 1 mysql mysql 1705 Oct 27 2025 ca-key.pem
-rw-r–r– 1 mysql mysql 1112 Oct 27 2025 ca.pem
-rw-r–r– 1 mysql mysql 1112 Oct 27 2025 client-cert.pem
-rw——- 1 mysql mysql 1705 Oct 27 2025 client-key.pem
-rw-r–r– 1 root root 0 Oct 27 2025 debian-5.7.flag
-rw-r—– 1 mysql mysql 196608 May 11 00:00 '#ib_16384_0.dblwr'
-rw-r—– 1 mysql mysql 8585216 Oct 27 2025 '#ib_16384_1.dblwr'
-rw-r—– 1 mysql mysql 3454 May 10 12:48 ib_buffer_pool
-rw-r—– 1 mysql mysql 12582912 May 11 00:00 ibdata1
-rw-r—– 1 mysql mysql 12582912 May 10 12:48 ibtmp1
drwxr-x— 2 mysql mysql 4096 May 10 13:53 '#innodb_redo'/
drwxr-x— 2 mysql mysql 4096 May 10 12:48 '#innodb_temp'/
drwxr-x— 2 mysql mysql 4096 Oct 27 2025 mysql/
-rw-r—– 1 mysql mysql 14 May 11 14:09 mysqld-auto.cnf
-rw-r—– 1 mysql mysql 26214400 May 10 13:54 mysql.ibd
drwxr-x— 2 mysql mysql 4096 May 10 13:54 mysqlslap/
drwxr-x— 2 mysql mysql 4096 Oct 27 2025 performance_schema/
-rw——- 1 mysql mysql 1705 Oct 27 2025 private_key.pem
-rw-r–r– 1 mysql mysql 452 Oct 27 2025 public_key.pem
-rw-r–r– 1 mysql mysql 1112 Oct 27 2025 server-cert.pem
-rw——- 1 mysql mysql 1705 Oct 27 2025 server-key.pem
drwxr-x— 2 mysql mysql 4096 Oct 27 2025 sys/
drwxr-x— 2 mysql mysql 4096 Oct 27 2025 TestDB/
-rw-r—– 1 mysql mysql 16777216 May 10 13:55 undo_001
-rw-r—– 1 mysql mysql 16777216 May 10 13:55 undo_002
-rw-r—– 1 mysql mysql 8 May 10 12:48 yudukai.pid
root@yudukai:/var/lib/mysql#

  • 数据目录下的每个子目录都是一个数据库目录,对应服务器管理的一个数据库,包括MySQL 安装成功后创建的标准数据库:
  • mysql目录对应于mysql系统库,包含mysql服务器运行时所需的信息,该数据库包含数据字典表和系统表;
  • performance_schema目录对应于Performance Schema,提供了在运行时用于检查服务器内部执行的信息;
  • sys目录对应于sys系统库,提供一组对象来帮助解释性能模式相关信息;
  • 其他子目录对应于用户或应用程序创建的数据库,也就是说我们每创建一个数据库,就会在数据目录生成一个同名的目录来保存对应的数据。
  • 服务器写入的日志文件
  • InnoDB 表空间和日志文件
  • 默认或自动生成的 SSL 和 RSA 证书和密钥文件
  • 服务器进程 ID 文件(当服务器运行时)
  • mysqld-auto.cnf 文件用来存储持久化全局系统变量设置
  • 通过选项重新配置服务器,可以将上述某些项目重新定位到指定目录。

    使用 –datadir 选项允许更改数据目录本身的位置。

    image-20260511164939123


    3. 日志简介

    MySQL Server 有以下几种日志,可以记录服务器正在发生的活动。

    日志类型日志信息
    错误日志 (Error log) mysqld在启动、运行或停止时遇到的问题比如:启动失败,运行时崩溃
    一般查询日志 (General query log) 已建立的客户端连接和从客户端接收到的语句一般不开启
    慢查询日志 (Slow query log) 执行时间超过 long_query_time 指定秒数的查询优化的时候查询
    二进制日志 (Binary log) 更改数据的语句(也用于主从复制)
    中继日志 (Relay log) 从源服务器接收到的数据更改来源于集群中的主服务器
    DDL日志(metadata log) DDL 语句执行的操作
    回滚日志/撤销日志(undo log) 用于事务的回滚操作回滚的时候会根据日志里记录的依次回滚
    重做日志(redo log) 用于服务器崩溃恢复服务器崩溃的时候,把日志中没执行的继续执行
    • 默认情况下,除 Windows 上的错误日志外,不启用任何日志,Linux下默认开启错误日志和二进制日志
    • 在服务器运行期间可以控制一般查询和慢查询日志的禁用与开启,也可以更改日志文件名
    • 一般查询日志和慢查询日志记录可以写入日志表、日志文件或两者同时写入
    • 默认情况下,所有启用的日志将写入数据目录,可以通过刷新日志强制服务器关闭并重新打开日志文件
    • 通过 FLUSH LOGS 语句刷新日志来强制服务器关闭并重新打开日志文件,也可以使用mysqladmin 的 flush-logs 或 refresh 参数,或mysqldump 的 –flush-logs 或 –master-data 选项
    • 中继日志仅用于主从复制过程中的从服务器。

    3.1 一般查询日志和慢查询日志的输出形式

    如果启用一般查询日志和慢查询日志,日志的输出方式可以指定为日志文件或 mysql 系统库中的 general_log 和 slow_log 表,也可以两者同时指定。


    3.1.1 启动时的日志控制

    • log_output 系统变量指定日志输出的形式,但并不会真正的启用日志。

      log_output 可以有三个值,分别是: TABLE (表)、 FILE (文件)、 NONE (不输出)

      可以同时指定多个值,并用逗号隔开,未指定值时默认是 FILE ,如果列表中存在 NONE 则其他的不生效,也就是说 NONE 的优先级最高。

    • 通过设置 general_log 系统变量的值来控制一般查询日志的 开启 1 与 禁用 0(用0和1来控制开启和禁用) ,如果要为日志指定自定义的路径或文件名可以使用 general_log_file 系统变量(绝对路径)

    • 通过设置 slow_query_log 系统变量的值来控制慢查询日志的 开启 1 与 禁用 0 ,如果要为日志指定自定义的路径或文件名可以使用slow_query_log_file 系统变量(绝对路径)

    • 一般查询日志记录了所有的查询语句,慢查询日志可以说是一般查询日志的子集

    • 示例,以选项文件中的配置为例:

    没开启的话,一般查询日志默认在:

    image-20260512100137594

    慢查询日志默认在:

    image-20260512100340978

    将一般查询日志写入日志表和日志文件:

    [mysqld]
    #日志写入表和文件
    log_output=TABLE,FILE
    #开启一般查询日志
    general_log=1

    仅将一般查询日志和慢查询日志写入日志表:

    [mysqld]
    log_output=TABLE #日志写入表
    general_log=1 #开启一般查询日志
    slow_query_log=1 #开启慢查询日志

    仅将慢查询日志写入日志文件:

    [mysqld]
    log_output=FILE #日志文件
    slow_query_log=1 #开启慢查询日志

    • 将一般查询日志和慢查询日志写入日志文件,并指定自定义的日志路径(修改路径,可能涉及到权限问题,需要修改权限)

    [mysqld]
    #日志文件
    log_output=FILE
    #开启一般查询日志
    general_log=1
    #指定自定义的文件名
    general_log_file=/var/lib/mysql/general.log
    #开启慢查询日志
    slow_query_log=1
    #指定自定义的文件名
    slow_query_log_file=/var/lib/mysql/slow_query.log

    也有专属的可以单独修改一般查询日志和慢查询日志的输出形式,可以覆盖log_output,达到两者选择不同日志输出形式的效果。

    [mysqld]
    # 开启一般查询日志(记录所有到达MySQL服务器的SQL语句)
    # 1 表示开启,0 表示关闭
    general_log = 1

    # 设置一般查询日志的输出目标仅为“文件”
    # 这是一个“专属覆盖”变量,它会让一般查询日志忽略下面 log_output 的设置,只写文件
    general_log_output = FILE

    # 开启慢查询日志(记录执行时间超过指定阈值的SQL语句)
    # 1 表示开启,0 表示关闭
    slow_query_log = 1

    # 设置慢查询的时间阈值(单位:秒)
    # 执行时间超过 2 秒的查询将被记录到慢查询日志中
    long_query_time = 2

    # 全局日志输出目标控制
    # 设置为 'FILE,TABLE' 表示日志同时输出到文件和表中
    # 注意:因为上面 general_log_output 已经把一般查询日志“拦截”并强制只写 FILE,
    # 所以这个 log_output = FILE,TABLE 实际上只对慢查询日志生效,
    # 最终效果:慢查询日志会同时写入文件和 mysql.slow_log 表中。
    log_output = FILE,TABLE

    修改查询日志文件名:

    一般查询日志文件路径,名:var/lib/mysql/general.log

    慢查询日志文件路径,名:var/lib/mysql/slow_query.log

    每次修改前,最好选项名都去官方文档查一下是否有,不然服务器可能起不来,哪怕麻烦也要去验证。

    # MySQL 服务节点
    [mysqld]

    # MySQL 服务启动后监听的端口号
    port=3306

    # 数据目录的路径,这里演示的是windows下的配置,注意分隔符用/,如果是\\则需要转义为\\\\.
    # 把原data目录整体复制到新路径
    # datadir=写具体的实现目录

    # MySQL 服务器的字符集与排序规则
    character_set_server=utf8mb4
    collation_server=utf8mb4_general_ci

    # 新建表时使用的存储引擎,windows下已默认配置
    default_storage_engine=INNODB

    # 时区
    default-time-zone='+8:00'

    # ################# 日志相关 #################
    #日志文件
    log_output=FILE,TABLE
    #开启一般查询日志
    general_log=1
    #指定自定义的文件名
    general_log_file=/var/lib/mysql/general.log

    #开启慢查询日志
    slow_query_log=1
    #指定自定义的文件名
    slow_query_log_file=/var/lib/mysql/slow_query.log

    #错误日志的路径
    log-error=/var/log/mysql/error.log

    image-20260512102900987

    修改后重启一下MySQL服务器,然后看一下状态:

    image-20260512102939085

    看一下是否配置成功:

    image-20260512142411631


    3.1.2 运行时的日志控制

    • 在运行时修改 log_output 的值,以更改日志的输出形式,通过语句控制
    • 语法:SET [GLOBAL|SESSION] variable_name=value

    SET GLOBAL log_output=[FILE, TABLE, NONE]

    general_log[={0|1}] 和 slow_query_log[={0|1}] 可以表示启用和禁用一般查询日志和慢查询日志

    general_log_file 和 slow_query_log_file 表示通用查询日志和慢查询日志文件名称

    只对当前会话禁用或启用一般查询日志记录,将 SESSION 作用域的 sql_log_off 变量设置为 ON 或 OFF


    3.1.3 使用日志表优点

    • 可以通过 SQL 语句的条件查询过滤日志内容,从而选择满足特定条件的日志记录。比如,某个客户端的日志;
    • 可以通过客户端程序连接到服务器并查询表中的日志信息,无需登录服务器主机访问文件系统。
    • 日志记录具有标准格式,可看日志表的结构,可以使用以下语句:

    SHOW CREATE TABLE mysql.general_log; # 一般查询日志
    SHOW CREATE TABLE mysql.slow_log; # 慢查询日志

    image-20260512143232787


    3.2 一般查询日志

    • General query log一般查询日志,记录客户端连接或断开连接的信息,也会记录从客户端接收的每个SQL语句。如果开启将会产生大量的内容,非常耗费服务器资源,所以默认为关闭(不开启),要启用一般查询日志可以使用:请使用 –general_log[={0|1}]
    • 默认日志文件名为 host_name.log ,可以使用 general_log_file=file_name 修改;
    • 记当客户端连接的日志行,使用 connection_type 来指示用于建立连接的协议。 TCP/IP 表示不使用SSL建立的TCP/IP连接、 SSL/TLS 表示使用SSL建立的TCP/IP连接、 Socket 表示Unix套接字文件连接、 Named Pipe 表示Windows命名管道连接、 Shared Memory 表示Windows共享内存连接。
    • Mysqld按照接收到SQL语句的顺序将语句写入查询日志,这个顺序可能与语句执行的顺序不同。
    • 表结构如下:

    mysql> SHOW CREATE TABLE mysql.general_log;
    +————-+———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————–+
    | Table | Create Table |
    +————-+———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————–+
    | general_log | CREATE TABLE `general_log` (
    # 发生时间
    `event_time` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
    # 用户主机
    `user_host` mediumtext NOT NULL,
    # 执行当前SQL语句的系统线程ID
    `thread_id` bigint unsigned NOT NULL,
    # 选项文件中配置的server_id
    `server_id` int unsigned NOT NULL,
    # 日志的类型
    `command_type` varchar(64) NOT NULL,
    # 具体的SQL语句
    `argument` mediumblob NOT NULL
    ) ENGINE=CSV DEFAULT CHARSET=utf8mb3 COMMENT='General log' |
    +————-+———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————–+
    1 row in set (0.00 sec)

    mysql>


    3.2.1 一般查询日志示例

    • 查询表中的日志内容

    通过正常的SQL语句查询日志:

    mysql> select * from mysql.general_log\\G;

    image-20260512145009387

    可以通过CAST()函数把编码后的内容转换为可读的字符类型,CAST(要转换的内容 AS 目标数据类型)

    # 查看日志
    SELECT DATE_FORMAT(event_time, '%Y-%m-%d %H:%i:%s') AS time,
    user_host,
    thread_id,
    server_id,
    command_type,
    CAST(argument AS CHAR) AS query # query是我们重命名的
    FROM mysql.general_log;

    查看:执行后,重命名的query字段内容就是我们看得懂的查询语句了

    image-20260512145358804


    • 查看文件中的日志内容

    root@yudukai:/var/lib/mysql# cat general.log
    /usr/sbin/mysqld, Version: 8.0.43-0ubuntu0.22.04.2 ((Ubuntu)). started with:
    Tcp port: 3306 Unix socket: /var/run/mysqld/mysqld.sock
    Time Id Command Argument
    2026-05-12T02:28:32.064395Z 0 ExecuteCREATE TABLE performance_schema.innodb_redo_log_files(
    `FILE_ID` BIGINT NOT NULL COMMENT 'Id of the file.',
    `FILE_NAME` VARCHAR(2000) NOT NULL COMMENT 'Path to the file.',
    `START_LSN` BIGINT NOT NULL COMMENT 'LSN of the first block in the file.',
    `END_LSN` BIGINT NOT NULL COMMENT 'LSN after the last block in the file.',
    `SIZE_IN_BYTES` BIGINT NOT NULL COMMENT 'Size of the file (in bytes).',
    `IS_FULL` TINYINT NOT NULL COMMENT '1 iff file has no free space inside.',
    `CONSUMER_LEVEL` INT NOT NULL COMMENT 'All redo log consumers registered on smaller levels than this value, have already consumed this file.'
    )engine = 'performance_schema'
    2026-05-12T02:29:48.858863Z 8 Connectroot@localhost on using SSL/TLS
    2026-05-12T02:29:48.859340Z 8 Queryselect @@version_comment limit 1
    2026-05-12T02:43:25.965362Z 8 Quit
    2026-05-12T06:20:40.287685Z 9 Connectroot@localhost on using SSL/TLS
    2026-05-12T06:20:40.288169Z 9 Queryselect @@version_comment limit 1
    2026-05-12T06:20:48.451424Z 9 Queryshow variables like 'log_output'
    2026-05-12T06:21:27.575631Z 9 Queryshow variables like 'slow_query_log'
    2026-05-12T06:22:39.095475Z 9 Queryshow variables like 'general_log'
    2026-05-12T06:23:10.990197Z 9 Queryshow variables like 'general_log_file'
    2026-05-12T06:23:26.932568Z 9 Queryshow variables like 'slow_log_file'
    2026-05-12T06:23:37.434868Z 9 Queryshow variables like 'slow_queue_log_file'
    2026-05-12T06:23:45.749492Z 9 Queryshow variables like 'slow_query_log_file'
    2026-05-12T06:31:59.999605Z 9 QuerySHOW CREATE TABLE mysql.general_log
    2026-05-12T06:32:42.687679Z 9 QuerySHOW CREATE TABLE mysql.slow_log
    2026-05-12T06:45:19.107188Z 9 Queryselect * from mysql.general_log
    2026-05-12T06:45:30.884729Z 9 Queryselect * from mysql.general_log
    2026-05-12T06:52:08.881959Z 9 QuerySELECT DATE_FORMAT(event_time, '%Y-%m-%d %H:%i:%s') AS time,
    user_host,
    thread_id,
    server_id,
    command_type,
    CAST(argument AS CHAR) AS query
    FROM mysql.general_log
    root@yudukai:/var/lib/mysql#


    3.3 慢查询日志

    • 慢查询日志由执行时间超过系统变量 long_query_time 指定的秒数的 SQL 语句组成(例如:10s),并且检查的行数大于系统变量 min_examined_row_limit 指定值(查询语句返回的结果集中所包含的行数,例如10行)。

      想要被慢查询记录需要同时满足超过10s和10行。

      被记录的慢查询需要进行优化,可以使用 mysqldumpslow客户端程序对慢日志进行分析汇总。

    • 获取初始锁的时间不计入执行时间,mysqld在执行完SQL语句并释放所有锁后才将符合条件的语句写入慢速查询日志,因此日志顺序可能与执行顺序不同。

    一个SQL语句的执行经历的阶段:

  • 执行线程要获取锁
  • 执行SQL语句并返回结果
  • 释放锁
  • 第1步,如果现场没有获取到锁就阻塞等待。

    第2-3步,是慢查询记录真正的执行时间


    3.3.1 慢查询日志参数

    • long_query_time 的默认值是10,最小值是0;

    • 默认情况下,不记录管理语句(DDL语句),也不记录不使用索引的查询

    • 默认为关闭(不开启),要启用慢查询日志可以使用:请使用 –slow_query_log[={0|1}] .

    • 默认日志文件名为 host_name-slow.log ,可以使用slow_query_log_file=file_name 修改;

    • 使用 –log-short-format 选项,以简要格式记录慢查询日志

    • 要记录管理语句,启用 log_slow_admin_statements 系统变量。管理语句包括 ALTER TABLE 、 ANALYZE TABLE 、 CHECK TABLE 、 CREATE INDEX 、 DROP INDEX 、 OPTIMIZE TABLE 和 REPAIR TABLE 。

    • 要记录不使用索引的查询,启用 log_queries_not_using_indexes 系统变量。当记录不使用索引的查询时,日志会快速增长,通过设置系统变量log_throttle_queries_not_using_indexes 限制每分钟写入慢查询日志同类查询的数量,默认值是0,表示无限制。

      一定要记住配置一下每分钟记录的日志数。


    3.3.2 慢查询日志内容

    3.3.2.1 FILE格式
    • 如果启用慢查询日志并将 FILE 作为输出目标,每条语句前面都用一行来表示日志的字段,该行以 # 字符开头并包含以下内容:
      • Query_time:SQL语句的执行时间,单位秒
      • Lock_time: 获取锁的时间,单位秒
      • Rows_sent: 发送到客户端的行数
      • Rows_examined: 服务器检查的行数
    • 启用–log-slow-extra[={OFF|ON}]系统变量会将以下额外字段写入到FILE中,TABLE形式不受影响
      • Thread_id: 线程标识符
      • Errno: 错误码,没有发生错误则为 0
      • Killed: 如果语句被终止,用错误码表示原因,如果语句正常终止则为 0。
      • Bytes_received: 接收到SQL语句的Bytes值。
      • Bytes_sent: 返回给客户端的Byte值。
      • Read_first: 索引中第一个条目被读取的次数,如果这个值很高,表明服务器正在执行大量完整索引扫描
      • Read_last: 读取索引中最后一个键的请求数,使用 ORDER BY 时关注
      • Read_key: 基于索引读取一行数据的请求数。如果这个值很高,表明表为当前查询建立了正确的索引
      • Read_next: 按索引排序读取下一行的请求数,查询具有范围约束的索引列,或者进行索引扫描,此值将递增。
      • Read_prev: 按索引排序读取前一行的请求数。主要用于优化ORDER BY…DESC。
      • Read_rnd: 基于固定位置读取一行的请求数。这个值很高表示,正在执行大量需要对结果进行排序的查询,可能有很多查询进行了全表扫描整,或者没有正确使用索引的连接。
      • Read_rnd_next: 读取数据文件中下一行的请求数。如果进行大量的表扫描,这个值会很高。通常,表示表没有建立正确地索引,或者查询没有利用索引。
      • Sort_merge_passes: 排序算法完成的归并次数,如果这个值很大,考虑增加sort_buffer_size 系统变量的值。
      • Sort_range_count: 使用范围进行排序的次数。
      • Sort_rows: 排序的行数。
      • Sort_scan_count: 通过扫描表完成的排序数。
      • Created_tmp_disk_tables: 服务器在执行语句时创建内部磁盘临时表的数量。
      • Created_tmp_tables: 服务器在执行语句时创建的内部临时表的数量。
      • Start: 执行SQL语句开始时间
      • End: 执行SQL语句结束时间

    3.3.2.2 TABLE格式

    慢查询日志表的表结构如下:

    mysql> SHOW CREATE TABLE mysql.slow_log;
    +———-+———————————————————————————————————————————————————–+
    | Table | Create Table |
    +———-+———————————————————————————————————————————————————–+
    | slow_log | CREATE TABLE `slow_log` (
    `start_time` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),# 开始时间
    `user_host` mediumtext NOT NULL,# 用户和所在的主机
    `query_time` time(6) NOT NULL,# 查询总耗时
    `lock_time` time(6) NOT NULL,# 争抢MySQL级别的锁的时间
    `rows_sent` int NOT NULL,# 返回客户端结果集中数据行的数量
    `rows_examined` int NOT NULL,# 服务器扫描表中数据行的数量
    `db` varchar(512) NOT NULL,# 数据库名
    `last_insert_id` int NOT NULL,# 最后一次插入
    `insert_id` int NOT NULL,# 插入的记录id
    `server_id` int unsigned NOT NULL,# 选项文件中配置的server_id
    `sql_text` mediumblob NOT NULL,# 具体执行的SQL语句
    `thread_id` bigint unsigned NOT NULL# 执行线程的id
    ) ENGINE=CSV DEFAULT CHARSET=utf8mb3 COMMENT='Slow log' |
    +———-+———————————————————————————————————————————————————–+
    1 row in set (0.00 sec)

    mysql>

    建议使用日志文件的方式记录慢查询日志。


    3.3.3 慢查询日志示例

    以#开头的三行,表示日志的开始

    Time Id Command Argument
    # Time: 2023-10-22T03:34:57.593209Z
    # User@Host: root[root] @ localhost [::1] Id: 10
    # Query_time: 24.224840 Lock_time: 24.201250 Rows_sent: 0 Rows_examined: 1
    use test_db;
    SET timestamp=1697945673;
    UPDATE ACCOUNT SET NAME='张三' where id = 1;
    # Time: 2023-10-22T03:35:31.918024Z
    # User@Host: root[root] @ localhost [::1] Id: 9
    # Query_time: 19.012846 Lock_time: 19.012325 Rows_sent: 1 Rows_examined: 1
    SET timestamp=1697945712;
    select * from account where id < 2 FOR SHARE;
    # Time: 2023-10-22T04:20:40.347153Z
    # User@Host: root[root] @ localhost [::1] Id: 10
    # Query_time: 50.412714 Lock_time: 50.411844 Rows_sent: 0 Rows_examined: 0
    SET timestamp=1697948389;
    UPDATE ACCOUNT SET NAME='张三' where id = 1;
    # Time: 2023-10-22T09:27:02.918811Z
    # User@Host: root[root] @ localhost [::1] Id: 10
    # Query_time: 50.482737 Lock_time: 50.480508 Rows_sent: 0 Rows_examined: 0
    SET timestamp=1697966772;
    INSERT INTO child (id) VALUES (101);

    赞(0)
    未经允许不得转载:171主机测评 » 【MySQL高阶】6.MySQL数据目录,日志
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址