一、功能介绍
通过查询该表,你可以分析列存只读分析实例中执行较慢的 SQL,定位性能瓶颈和异常查询。
二、使用限制
·用户查询 libra_system.slow_log 时,系统会自动过滤掉内部用户(libra@%)产生的慢 SQL 记录,仅返回业务用户的查询信息。
·系统内部 SQL(如统计信息收集、元数据维护等)不会被记录到该表。
·失败的 SQL(执行报错)也会被记录,可通过 succ 字段进行筛选。
三、慢查询阈值
慢 SQL 的判定阈值由系统变量 libra_slow_log_threshold 控制。
| 名称 | 含义 | 类型 | 默认值 | 取值范围 | 单位 |
| libra_slow_log_threshold | 慢 SQL 判定阈值 | Integer | 300 | -1 ~ 9223372036854775807 | 毫秒 |
修改阈值示例:
SET GLOBAL libra_slow_log_threshold = 500;
注意:说明:
注意:当取值为 -1 时,表示不记录任何慢 SQL。修改后立即生效,无需重启服务。
四、SQL 文本长度限制
写入 sql 列的 SQL 文本最大长度由系统变量 libra_query_log_max_len 控制,超过该长度时 SQL 文本会被截断。
| 名称 | 含义 | 类型 | 默认值 | 取值范围 | 单位 |
| libra_query_log_max_len | 慢 SQL 文本最大长度 | Integer | 4194304 | 0 ~ 1073741824 | 字节 |
默认值 4194304 字节即 4 MB。
五、查询示例
查询所有慢 SQL:
SELECT * FROM libra_system.slow_log;
查询执行时间超过1秒的慢 SQL:
SELECT start_time, user, db, duration, sqlFROM libra_system.slow_logWHERE duration > 1000ORDER BY duration DESCLIMIT 10;
查询某段时间内执行失败的慢 SQL:
SELECT start_time, user, db, sql, durationFROM libra_system.slow_logWHERE event_date = '2026-05-13' AND succ = 0;
六、字段说明
| 字段名称 | 类型 | 是否可以为 NULL | 描述 |
| event_date | date | NO | 慢 SQL 发生日期,按日期分区,用于加速时间范围过滤。 |
| start_time | text | NO | SQL 开始执行时间,格式为 YYYY-MM-DD HH:MM:SS.ffff,精确到 0.1毫秒。 |
| tso | bigint(20) unsigned | NO | SQL 关联的事务时间戳,可作为查询的全局有序标识。 |
| sql | text | NO | SQL 文本信息。最大长度由 libra_query_log_max_len 控制(默认 4 MB),超过将被截断。 |
| duration | bigint(20) unsigned | NO | SQL 的执行时间,单位为毫秒。 |
| details | text | NO | SQL 执行详细信息,预留字段,当前为空字符串。 |
| conn_id | bigint(20) unsigned | NO | 客户端连接的 Session ID。 |
| user | text | NO | 执行该 SQL 的用户名,格式为 user@host。 |
| db | text | NO | 执行 SQL 时所在的数据库名。 |
| digest | text | NO | SQL 归一化后的指纹,相同模式的 SQL 拥有相同的 Digest,可用于聚合分析。 |
| succ | tinyint(3) unsigned | NO | SQL 是否执行成功。取值:0 表示失败,1 表示成功。 |
| host | text | NO | 实际执行该 SQL 的 Libra 存储节点地址,格式为 IP:Port。 |
| execution_mode | text | NO | SQL 的执行模式。取值:no_forward、auto_tp、auto_ap、only_tp、only_ap。详见下方说明。 |
| normalized_sql | text | NO | 参数化(归一化)后的 SQL 文本,可用于 SQL 模式聚合。 |
七、execution_mode 取值说明
| 取值 | 说明 |
| no_forward | 自动路由关闭,SQL 在 Libra 上执行。 |
| auto_tp | 自动路由开启,根据代价估算路由到 TDSQL 执行。 |
| auto_ap | 自动路由开启,根据代价估算路由到 Libra 执行。 |
| only_tp | 强制路由到 TDSQL 执行。 |
| only_ap | 强制路由到 Libra 执行。 |
注意:说明:
注意:event_date 是该表的分区字段,按 tso 排序。在查询时优先使用 event_date 作为过滤条件,可显著提升查询性能。