阅读856 返回首页    go 阿里云 go 技术社区[云栖]


DRDS慢SQL明细__开发手册_分布式关系型数据库 DRDS-阿里云

DRDS慢日志明细简介

默认情况下,DRDS的每一个节点,会记录5000条慢SQL明细(逻辑慢SQL和物理慢SQL加一块5000条),例如,如果您的规格是4C4G,则有两个DRDS节点,会记录5000x2=10000条慢SQL明细。

当慢SQL数目多于限制数目的时候,会滚动删除老的日志。

DRDS中定义执行时间超过1s的SQL为慢SQL。

查看慢日志明细的语法

SHOW FULL {SLOW | PHYSICAL_SLOW} [WHERE where_condition]
                                 [ORDER BY col_name [ASC | DESC], ...]
                                 [LIMIT {[offset,] row_count | row_count OFFSET offset}]

解释

SHOW FULL SLOW显示的是逻辑慢SQL,即您的应用发送到DRDS的SQL;SHOW FULL PHYSICAL_SLOW指的是物理慢SQL,即DRDS发送到RDS的SQL。

其中SHOW FULL SLOW的结果集会包含以下列,其含义如下:

    TRACE_ID: 905e1a093800000            该SQL的唯一标记,同一个逻辑SQL以及该逻辑SQL产生的物理SQL的TRACE_ID相同,同时TRACE_ID也会以注释的形式发送到RDS,在RDS的SQL明细中可以根据TRACE_ID找到该SQL
        HOST: 127.0.0.1                  发送该SQL的客户端的IP
  START_TIME: 2016-03-25 20:32:55.312    DRDS收到这个SQL的时间
EXECUTE_TIME: 1003                       DRDS执行该SQL消耗的时间
  AFFECT_ROW: 1                          该SQL返回的记录数或者影响的行数
         SQL: select sleep(1)            执行的语句

SHOW FULL PHYSICAL_SLOW的结果集会包含以下列,其含义如下:

               TRACE_ID: 905e1a093800000                      该SQL的唯一标记,同一个逻辑SQL以及该逻辑SQL产生的物理SQL的TRACE_ID相同,同时TRACE_ID也会以注释的形式发送到RDS,在RDS的SQL明细中可以根据TRACE_ID找到该SQL
             GROUP_NAME: TDDL5_00_GROUP                       执行的分片名称
             DBKEY_NAME: db218249098_sqa_zmf_tddl5_00_3309    执行的分库信息
             START_TIME: 2016-03-25 20:32:54.31               DRDS开始执行这个SQL的时间
           EXECUTE_TIME: 1003                                 DRDS执行该SQL消耗的时间
       SQL_EXECUTE_TIME: 1002                                 DRDS调用RDS执行该SQL消耗的时间
GETLOCK_CONNECTION_TIME: 0                                    DRDS从连接池取连接消耗的时间
 CREATE_CONNECTION_TIME: 0                                    DRDS建立RDS连接消耗的时间
             AFFECT_ROW: 1                                    该SQL返回的记录数或者影响的行数
                    SQL: select sleep(1)                      执行的语句

例子

我们可以先通过一些条件,例如执行的时间,SQL字符串匹配等方式来获取我们想要的慢SQL。然后我们可以根据TRACE_ID,在SHOW FULL PHYSICAL_SLOW中获取这个SQL的物理执行情况,更进一步的,我们可以在RDS的SQL明细与慢SQL中,根据这个TRACE_ID查看这个SQL在RDS上的执行情况。

mysql> show full slow where sql like "%sleep%" order by execute_time limit 1;
+-----------------+-----------+-------------------------+--------------+------------+-----------------+
| TRACE_ID        | HOST      | START_TIME              | EXECUTE_TIME | AFFECT_ROW | SQL             |
+-----------------+-----------+-------------------------+--------------+------------+-----------------+
| 905e1a093800000 | 127.0.0.1 | 2016-03-25 20:32:55.312 |         1003 |          1 | select sleep(1) |
+-----------------+-----------+-------------------------+--------------+------------+-----------------+
1 row in set (0.06 sec)

mysql> show full physical_slow where trace_id='905e1a093800000';
+-----------------+----------------+-----------------------------------+------------------------+--------------+------------------+-------------------------+------------------------+------------+-----------------+
| TRACE_ID        | GROUP_NAME     | DBKEY_NAME                        | START_TIME             | EXECUTE_TIME | SQL_EXECUTE_TIME | GETLOCK_CONNECTION_TIME | CREATE_CONNECTION_TIME | AFFECT_ROW | SQL             |
+-----------------+----------------+-----------------------------------+------------------------+--------------+------------------+-------------------------+------------------------+------------+-----------------+
| 905e1a093800000 | TDDL5_00_GROUP | db218249098_sqa_zmf_tddl5_00_3309 | 2016-03-25 20:32:54.31 |         1003 |             1002 |                       0 |                      0 |          1 | select sleep(1) |
+-----------------+----------------+-----------------------------------+------------------------+--------------+------------------+-------------------------+------------------------+------------+-----------------+
1 row in set (0.03 sec)

最后更新:2016-05-06 10:44:57

  上一篇:go 排查DRDS慢SQL__开发手册_分布式关系型数据库 DRDS-阿里云
  下一篇:go DRDS数据导入__开发手册_分布式关系型数据库 DRDS-阿里云