慢SQL相關(guān)
本文介紹了慢SQL相關(guān)的SHOW語句。
SHOW [FULL] SLOW [WHERE expr] [limit expr]
執(zhí)行時間超過1秒的SQL語句是慢SQL,邏輯慢SQL是指應(yīng)用發(fā)送到PolarDB-X的慢SQL。
SHOW SLOW
:查看自PolarDB-X啟動或者上次執(zhí)行CLEAR SLOW
以來最慢的100條邏輯慢SQL;說明此處記錄的是最慢的100個,緩存在PolarDB-X 系統(tǒng)中,當(dāng)實例重啟或者執(zhí)行
CLEAR SLOW
時會丟失。SHOW FULL SLOW
:查看實例啟動以來記錄的所有邏輯慢SQL(持久化到PolarDB-X的內(nèi)置數(shù)據(jù)庫中),該記錄數(shù)默認為100條。
示例:
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:執(zhí)行開始時間;
EXECUTE_TIME:執(zhí)行時間;
AFFECT_ROW:對于DML語句是影響行數(shù);對于查詢語句是返回的記錄數(shù)。
SHOW [FULL] PHYSICAL\_SLOW [WHERE expr] [limit expr]
執(zhí)行時間超過1秒的SQL語句被稱為慢SQL,物理慢SQL是指PolarDB-X發(fā)送到DN節(jié)點執(zhí)行的慢SQL。
SHOW PHYSICAL_SLOW
:查看自PolarDB-X啟動或者上次執(zhí)行CLEAR SLOW
以來最慢的100條物理慢SQL(注意,這里記錄的是最慢的100個,緩存在PolarDB-X系統(tǒng)中,當(dāng)實例重啟或者執(zhí)行CLEAR SLOW時會丟失);SHOW FULL PHYSICAL_SLOW
:查看實例啟動以來記錄的所有物理慢SQL(持久化到PolarDB-X的內(nèi)置數(shù)據(jù)庫中)。該記錄數(shù)默認為100條。
示例:
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:數(shù)據(jù)庫分組;
START_TIME:執(zhí)行開始時間;
EXECUTE_TIME:執(zhí)行時間;
AFFECT_ROW:對于DML語句是影響行數(shù);對于查詢語句是返回的記錄數(shù)。
CLEAR SLOW
清空自PolarDB-X啟動或者上次執(zhí)行CLEAR SLOW
以來最慢的100條邏輯慢SQL和最慢的100條物理慢SQL。
示例:
CLEAR SLOW;
Query OK, 0 rows affected (0.00 sec)
SHOW SLOW
或SHOW PHYSICAL_SLOW
展示的是最慢的100個SQL,如果長時間未執(zhí)行CLEAR SLOW
,可能是非常老的SQL,一般執(zhí)行過SQL優(yōu)化之后,建議執(zhí)行CLEAR SLOW
后,等待系統(tǒng)運行一段時間,再查看慢SQL的優(yōu)化效果。