慢 SQL 相關的 SHOW 語句如下:
- SHOW [FULL] SLOW [WHERE expr] [limit expr] 語句
- SHOW [FULL] PHYSICAL_SLOW [WHERE expr] [limit expr] 語句
- CLEAR SLOW 語句
SHOW [FULL] SLOW [WHERE expr] [limit expr]
執行時間超過 1 秒的 SQL 語句是慢 SQL,邏輯慢 SQL 是指應用發送到 PolarDB-X 的慢 SQL。
-
: 檢視自 PolarDB-X 啟動或者上次執行SHOW SLOW
以來最慢的 100 條邏輯慢 SQL(注意,這裡記錄的是最慢的 100 個,緩存在 PolarDB-X 系統中,當執行個體重新開機或者執行CLEAR SLOW
時會丢失);CLEAR SLOW
-
: 檢視執行個體啟動以來記錄的所有邏輯慢 SQL(持久化到 PolarDB-X 的内置資料庫中)。該記錄數有一個上限(具體數值跟購買的執行個體規格相關),PolarDB-X 會滾動删除比較老的慢 SQL 語句。執行個體的規格如果是 4C4G 的話,最多記錄 10000 條慢 SQL 語句(包括邏輯慢 SQL 和實體慢 SQL);執行個體的規格如果是 8C8G 的話,最多記錄 20000 條慢 SQL 語句(包括邏輯慢 SQL 和實體慢 SQL),其它規格依此類推。SHOW FULL SLOW
重要列詳解:
- HOST:來源 IP;
- START_TIME:執行開始時間;
- EXECUTE_TIME:執行時間;
- AFFECT_ROW:對于 DML 語句是影響行數;對于查詢語句是傳回的記錄數。
-
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)
SHOW [FULL] PHYSICAL_SLOW [WHERE expr] [limit expr]
執行時間超過1秒的 SQL 語句是慢 SQL,實體慢 SQL 是指 PolarDB-X 發送到 RDS 的慢 SQL。關于如何排查慢SQL,詳情請參見
排查慢SQL。
-
SHOW PHYSICAL_SLOW
以來最慢的 100 條實體慢 SQL(注意,這裡記錄的是最慢的 100 個,緩存在 PolarDB-X 系統中,當執行個體重新開機或者執行CLEAR SLOW
CLEAR SLOW
-
: 檢視執行個體啟動以來記錄的所有實體慢 SQL(持久化到 PolarDB-X 的内置資料庫中)。該記錄數有一個上限(具體數值跟購買的執行個體規格相關),PolarDB-X 會滾動删除比較老的慢 SQL 語句。執行個體的規格如果是 4C4G 的話,最多記錄 10000 條慢 SQL 語句(包括邏輯慢 SQL 和實體慢 SQL);執行個體的規格如果是 8C8G 的話,最多記錄 20000 條慢 SQL 語句(包括邏輯慢 SQL 和實體慢 SQL),其它規格依此類推。SHOW FULL PHYSICAL_SLOW
- GROUP_NAME:資料庫分組;
-
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)
CLEAR SLOW
清空自 PolarDB-X 啟動或者上次執行
CLEAR SLOW
以來最慢的 100 條邏輯慢 SQL 和最慢的100 條實體慢 SQL。
注意:
SHOW SLOW
和
SHOW PHYSICAL_SLOW
展示的是最慢的 100 個 SQL,如果長時間未執行
CLEAR SLOW
,可能都是非常老的 SQL 了,一般執行過 SQL 優化之後,建議都執行下
CLEAR SLOW
,等待系統運作一段時間,再檢視下慢 SQL 的優化效果。
-
mysql> clear slow;
-
Query OK, 0 rows affected (0.00 sec)