久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何使用Performance Schema查看Profiling

145次閱讀
沒有評論

共計 4274 個字符,預計需要花費 11 分鐘才能閱讀完成。

丸趣 TV 小編給大家分享一下如何使用 Performance Schema 查看 Profiling,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

SHOW PROFILE 可以用來 MySQL 執行語句時候所使用的資源(諸如 IO,上下文切換,CPU,Memory 等等), 但是從 MySQL 5.6.7 開始此特性將被移除,而使用 Performance Schema 代替,如下:

setup_actors 配置

MySQL 5.7.8, 可以通過 setup_actors 表來配置 host, user, or account 的信息被收集,如下:
# 默認情況下 setup_actors 的配置是允許監控和收集所有前臺線程的歷史事件信息  

SELECT * FROM
performance_schema.setup_actors;
+——+——+——+———+———+
| HOST | USER | ROLE | ENABLED | HISTORY |
+——+——+——+———+———+
| %  | %  | % 
| YES  | YES  |
+——+——+——+———+———+
1 row in set (0.03 sec)

# 修改默認的配置,關閉對所有前臺線程的監控和收集。并且插入新的行為指定的用戶開啟監控和收集信息

mysql
UPDATE performance_schema.setup_actors SET ENABLED = NO , HISTORY = NO
– WHERE HOST = % AND USER = %
mysql INSERT INTO performance_schema.setup_actors
(HOST,USER,ROLE,ENABLED,HISTORY)
– VALUES(localhost , test_user , % , YES , YES

# 修改后的配置如下:
mysql SELECT * FROM performance_schema.setup_actors;
+———–+———–+——+———+———+
| HOST | USER | ROLE | ENABLED | HISTORY |
+———–+———–+——+———+———+
| % | % | % | NO | NO |
| localhost | test_user | % | YES | YES |
+———–+———–+——+———+———+
# 只監控和收集 test_user@localhost 用戶相關的事件信息

Query Profiling Using Performance Schema 下文簡單嘗試下使用 Performance Schema 來查詢 profile 相關信息,使用方法如下 1. 開啟 setup_instruments 表中 statement 和 stage instrumentation 相關配置, 其中有些可能默認已經開啟

mysql UPDATE performance_schema.setup_instruments SET ENABLED = YES , TIMED = YES
– WHERE NAME LIKE %statement/%
mysql UPDATE performance_schema.setup_instruments SET ENABLED = YES , TIMED = YES
– WHERE NAME LIKE %stage/%

2. 開啟 events_statements_* and events_stages_* 相關消費(consumers),有些項目已經默認開啟

mysql UPDATE performance_schema.setup_consumers SET ENABLED = YES
– WHERE NAME LIKE %events_statements_%
mysql UPDATE performance_schema.setup_consumers SET ENABLED = YES
– WHERE NAME LIKE %events_stages_%

3. 為了與 show profile 的結果做對比,開啟 profiling 功能

mysql set profiling=1;

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql show warnings; #此處,也可以看到此特性將被移除的警告

+———+——+———————————————————————-+

| Level | Code | Message |

+———+——+———————————————————————-+

| Warning | 1287 | @@profiling is deprecated and will be removed in a future release. |

+———+——+———————————————————————-+

1 row in set (0.00 sec)

4. 執行 SQL 語句

mysql select * from t;

+—-+——+

| 9 | 15 |

| 10 | 15 |

| 2 | 20 |

| 3 | 20 |

| 8 | 25 |

+—-+——+

5 rows in set (0.00 sec)5 rows in set (0.00 sec)

5. 查看 profiling 結果

mysql show profiles;
+———-+————+—————–+
| Query_ID | Duration | Query |
+———-+————+—————–+
| 1 | 0.00010150 | show warnings |
| 2 | 0.00032075 | select * from t |
+———-+————+—————–+
2 rows in set, 1 warning (0.00 sec)

mysql show profile for query 2;
+———————-+———-+
| Status | Duration |
+———————-+———-+
| starting | 0.000038 |
| checking permissions | 0.000009 |
| Opening tables | 0.000048|
| init | 0.000022 |
| System lock | 0.000012 |
| optimizing | 0.000007 |
| statistics | 0.000016 |
| preparing | 0.000015 |
| executing | 0.000005 |
| Sending data | 0.000063 |
| end | 0.000008 |
| query end | 0.000009 |
| closing tables | 0.000013 |
| freeing items | 0.000012 |
| cleaning up | 0.000050 |
+———————-+———-+
15 rows in set, 1 warning (0.00 sec)

6. 查找剛才執行 SQL 的 EVENT_ID, 這步驟類似于 show profiles 查看 query id. 通過查詢表 events_statements_history_long 獲得對應的 EVENT_ID

注:此處只為了說明問題,可能還查詢到很多其他的 SQL,但是我們自己知道我們執行的 SQL 是哪條,其他的 SQL 此處都被省略了

7. 通過查詢 events_stages_history_long 表(NESTING_EVENT_ID=EVENT_ID)獲得最終結果

mysql SELECT event_name AS Stage, TRUNCATE(TIMER_WAIT/1000000000000,6) AS Duration

FROM performance_schema.events_stages_history_long WHERE NESTING_EVENT_ID=79;
+——————————–+———-+
| Stage | Duration |
+——————————–+———-+
| stage/sql/init | 0.000048 |
| stage/sql/checking permissions | 0.000008 |
| stage/sql/Opening tables | 0.000051 |
| stage/sql/init | 0.000019 |
| stage/sql/System lock | 0.000012 |
| stage/sql/optimizing | 0.000006 |
| stage/sql/statistics | 0.000016 |
| stage/sql/preparing | 0.000015 |
| stage/sql/executing | 0.000004 |
| stage/sql/Sending data | 0.000066 |
| stage/sql/end | 0.000005 |
| stage/sql/query end | 0.000008 |
| stage/sql/closing tables | 0.000013 |
| stage/sql/freeing items | 0.000011 |
| stage/sql/cleaning up | 0.000001 |
+——————————–+———-+
15 rows in set (0.01 sec)

如上,實現了通過 Performance Schema 來查詢 profileing 相關信息,最終能看到的選項跟 show profile 顯示的選項幾乎一樣,只是各項的值好像不太一致。

看完了這篇文章,相信你對“如何使用 Performance Schema 查看 Profiling”有了一定的了解,如果想了解更多相關知識,歡迎關注丸趣 TV 行業資訊頻道,感謝各位的閱讀!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-27發表,共計4274字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 越西县| 开封市| 县级市| 平谷区| 和田县| 洮南市| 广昌县| 洛宁县| 安新县| 青浦区| 利津县| 普定县| 新丰县| 新野县| 石楼县| 监利县| 满洲里市| 宣城市| 墨玉县| 五莲县| 永宁县| 英德市| 陕西省| 祁门县| 彭山县| 大邑县| 长宁县| 那曲县| 浮山县| 沅江市| 墨脱县| 洪洞县| 东乌珠穆沁旗| 徐汇区| 大英县| 华坪县| 芦山县| 保康县| 南漳县| 肇源县| 长子县|