天天看點

開發指南—DAL語句—SHOW—慢SQL相關

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),其它規格依此類推。

示例:

mysql> show slow where execute_time > 1000 limit 1;
+-----------+---------------------+--------------+------------+-----------+
| HOST      | START_TIME          | EXECUTE_TIME | AFFECT_ROW | SQL       |
+-----------+---------------------+--------------+------------+-----------+
| 127.0.0.1 | 2016-03-16 13:02:57 |         2785 |          7 | show rule |
+-----------+---------------------+--------------+------------+-----------+
1 row in set (0.02 sec)      

重要列詳解:

  • HOST:來源IP;
  • START_TIME:執行開始時間;
  • EXECUTE_TIME:執行時間;
  • AFFECT_ROW:對于DML語句是影響行數;對于查詢語句是傳回的記錄數。

SHOW [FULL] PHYSICAL\_SLOW [WHERE expr] [limit expr]

執行時間超過1秒的SQL語句是慢SQL,實體慢SQL是指PolarDB-X發送到RDS的慢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),其它規格依此類推。
mysql> show physical_slow;
+----------------+-----------------------------------+---------------------+--------------+------------------+-------------------------+------------------------+------------+-----------------+
| GROUP_NAME     | DBKEY_NAME                        | START_TIME          | EXECUTE_TIME | SQL_EXECUTE_TIME | GETLOCK_CONNECTION_TIME | CREATE_CONNECTION_TIME | AFFECT_ROW | SQL             |
+----------------+-----------------------------------+---------------------+--------------+------------------+-------------------------+------------------------+------------+-----------------+
| TDDL5_00_GROUP | db218249098_sqa_zmf_tddl5_00_3309 | 2016-03-16 13:05:38 |         1057 |             1011 |                       0 |                      0 |          1 | select sleep(1) |
+----------------+-----------------------------------+---------------------+--------------+------------------+-------------------------+------------------------+------------+-----------------+
1 row in set (0.01 sec)      
  • GROUP_NAME:資料庫分組;

CLEAR SLOW

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

CLEAR SLOW

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

mysql> clear slow;
Query OK, 0 rows affected (0.00 sec)      

說明

SHOW SLOW

SHOW PHYSICAL_SLOW

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

CLEAR SLOW

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

CLEAR SLOW

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