导读
TiDB 中的慢查询日志是一项关键的性能监控工具,其主要作用在于协助数据库管理员追踪执行时间较长的 SQL 查询语句。通过记录那些超过设定阈值的查询,慢查询日志为性能优化提供了关键的线索,有助于发现潜在的性能瓶颈,优化索引以及重构查询语句,从而提升数据库的整体性能。本文将主要介绍 TiDB 中慢查询日志的功能,并探讨常用的慢查询日志分析方法。
慢查询相关参数
tidb_enable_slow_log
:用于控制是否开启 slow log 功能。tidb_slow_log_threshold
:设置慢日志的阈值,执行时间超过阈值的 SQL 语句将被记录到慢日志中。默认值是 300 ms。tidb_query_log_max_len
:设置慢日志记录 SQL 语句的最大长度。默认值是 4096 byte。tidb_redact_log
:设置慢日志记录 SQL 时是否将用户数据脱敏用 ? 代替。默认值是 0 ,即关闭该功能。tidb_enable_collect_execution_info
:设置是否记录执行计划中各个算子的物理执行信息,默认值是 1。
慢查询日志原理
TiDB 的慢查询日志原理与 MySQL 一致,在每条 SQL 执行结束时,并且执行时间超过慢日志阈值时,会把 SQL 执行相关信息记录到慢日志中,同样的 SQL 多次执行超过阈值都会记录。
分析慢查询日志
由于 TiDB 是采用存算分离架构的分布式数据库,在这种架构下,每个 TiDB Server 节点都会产生慢日志。为方便查询慢日志,TiDB 提供了内存映射表 <