天天看點

PolarDB-X 1.0-SQL 手冊-SHOW-慢SQL相關

慢 SQL 相關的 SHOW 語句如下:

SHOW [FULL] SLOW [WHERE expr] [limit expr]

執行時間超過 1 秒的 SQL 語句是慢 SQL,邏輯慢 SQL 是指應用發送到 PolarDB-X 的慢 SQL。

  • SHOW SLOW

    : 檢視自 PolarDB-X 啟動或者上次執行

    CLEAR SLOW

    以來最慢的 100 條邏輯慢 SQL(注意,這裡記錄的是最慢的 100 個,緩存在 PolarDB-X 系統中,當執行個體重新開機或者執行

    CLEAR SLOW

    時會丢失);
  • SHOW FULL SLOW

    : 檢視執行個體啟動以來記錄的所有邏輯慢 SQL(持久化到 PolarDB-X 的内置資料庫中)。該記錄數有一個上限(具體數值跟購買的執行個體規格相關),PolarDB-X 會滾動删除比較老的慢 SQL 語句。執行個體的規格如果是 4C4G 的話,最多記錄 10000 條慢 SQL 語句(包括邏輯慢 SQL 和實體慢 SQL);執行個體的規格如果是 8C8G 的話,最多記錄 20000 條慢 SQL 語句(包括邏輯慢 SQL 和實體慢 SQL),其它規格依此類推。

重要列詳解:

  • HOST:來源 IP;
  • START_TIME:執行開始時間;
  • EXECUTE_TIME:執行時間;
  • AFFECT_ROW:對于 DML 語句是影響行數;對于查詢語句是傳回的記錄數。
  1. mysql> show slow where execute_time > 1000 limit 1;

  2. +-----------+---------------------+--------------+------------+-----------+

  3. | HOST | START_TIME | EXECUTE_TIME | AFFECT_ROW | SQL |

  4. +-----------+---------------------+--------------+------------+-----------+

  5. | 127.0.0.1 | 2016-03-16 13:02:57 | 2785 | 7 | show rule |

  6. +-----------+---------------------+--------------+------------+-----------+

  7. 1 row in set (0.02 sec)

SHOW [FULL] PHYSICAL_SLOW [WHERE expr] [limit expr]

執行時間超過1秒的 SQL 語句是慢 SQL,實體慢 SQL 是指 PolarDB-X 發送到 RDS 的慢 SQL。關于如何排查慢SQL,詳情請參見

排查慢SQL

  • SHOW PHYSICAL_SLOW

    CLEAR SLOW

    以來最慢的 100 條實體慢 SQL(注意,這裡記錄的是最慢的 100 個,緩存在 PolarDB-X 系統中,當執行個體重新開機或者執行

    CLEAR SLOW

  • SHOW FULL PHYSICAL_SLOW

    : 檢視執行個體啟動以來記錄的所有實體慢 SQL(持久化到 PolarDB-X 的内置資料庫中)。該記錄數有一個上限(具體數值跟購買的執行個體規格相關),PolarDB-X 會滾動删除比較老的慢 SQL 語句。執行個體的規格如果是 4C4G 的話,最多記錄 10000 條慢 SQL 語句(包括邏輯慢 SQL 和實體慢 SQL);執行個體的規格如果是 8C8G 的話,最多記錄 20000 條慢 SQL 語句(包括邏輯慢 SQL 和實體慢 SQL),其它規格依此類推。
  • GROUP_NAME:資料庫分組;
  1. mysql> show physical_slow;

  2. +----------------+-----------------------------------+---------------------+--------------+------------------+-------------------------+------------------------+------------+-----------------+

  3. | GROUP_NAME | DBKEY_NAME | START_TIME | EXECUTE_TIME | SQL_EXECUTE_TIME | GETLOCK_CONNECTION_TIME | CREATE_CONNECTION_TIME | AFFECT_ROW | SQL |

  4. +----------------+-----------------------------------+---------------------+--------------+------------------+-------------------------+------------------------+------------+-----------------+

  5. | TDDL5_00_GROUP | db218249098_sqa_zmf_tddl5_00_3309 | 2016-03-16 13:05:38 | 1057 | 1011 | 0 | 0 | 1 | select sleep(1) |

  6. +----------------+-----------------------------------+---------------------+--------------+------------------+-------------------------+------------------------+------------+-----------------+

  7. 1 row in set (0.01 sec)

CLEAR SLOW

清空自 PolarDB-X 啟動或者上次執行

CLEAR SLOW

以來最慢的 100 條邏輯慢 SQL 和最慢的100 條實體慢 SQL。

注意:

SHOW SLOW

SHOW PHYSICAL_SLOW

展示的是最慢的 100 個 SQL,如果長時間未執行

CLEAR SLOW

,可能都是非常老的 SQL 了,一般執行過 SQL 優化之後,建議都執行下

CLEAR SLOW

,等待系統運作一段時間,再檢視下慢 SQL 的優化效果。

  1. mysql> clear slow;

  2. Query OK, 0 rows affected (0.00 sec)