Hubble 慢sql设置与分析

Hubble数据库如果SQL语句返回意外结果或处理时间超过预期,则可以通过设置来输出查看慢sql。

识别慢SQL

  • 方式1:使用慢sql日志查询

  • 方式2:Hubble页面来查看慢sql

采用方式1 慢sql日志查询的形式为超过预期的sql,将会持久记录到sql-slow.log中,因需要过滤筛选慢sql性能下降10%左右。默认未开启。
采用方式2 hubble页面来查看慢sql,最大设置可以查看24h之内sql。

设置与查看慢sql方法

方式1

慢sql日志设置

  • 设置 sql.log.slow_query.latency_threshold 为您所选择的阈值。例如,60秒表示用户感觉到的系统在瞬间做出反应的极限。
SET CLUSTER SETTING sql.log.slow_query.latency_threshold = '60s';
  • 要将慢速内部查询写入一个单独的日志,请将 sql.log.slow_query.internal_queries.enabled 集群设置为 true
SET CLUSTER SETTING sql.log.slow_query.internal_queries.enabled = true;
  • 每个节点的慢SQL日志默认写入Hubble数据库日志目录下

慢sql日志查询

进入Hubble数据库日志目录 /data/hubbledir310/logs/ 查看sql-slow.log文件

[root@poc-hubble04 logs]# cd /data/hubbledir310/logs/
[root@poc-hubble04 logs]# tail -n 4 hubble310-sql-slow.log
I220613 08:57:03.414866 1147934625 util/log/file_sync_buffer.go:238 ⋮ [config]   log format (utf8=✓): hubdb-v2
I220613 08:57:03.414873 1147934625 util/log/file_sync_buffer.go:238 ⋮ [config]   line format: [IWEF]yymmdd hh:mm:ss.uuuuuu goid [chan@]file:lineredactionmark \[tags\] [counter] msg
I220613 08:57:03.412822 1147934625 10@util/log/event_log.go:32 ⋮ [n3,client=‹192.168.1.11:50628›,hostssl,user=root] 1 ={"Timestamp":1655110514810544287,"EventType":"slow_query","Statement":"‹SELECT * FROM \"\".\"\".bptfhist_2y2 AS t WHERE main_ac LIKE '%10268427281' LIMIT 2›","Tag":"SELECT","User":"root","ApplicationName":"$ hubble sql","ExecMode":"exec","Age":108602.01,"FullTableScan":true,"TxnCounter":6}

查看sql语句,进行慢sql分析。

方式2

进入 Hubble页面控制台,单击左侧的 '语句列表' ,查看 '语句列表' 页面。