定義
- Show ProfilesはMySQLによって提供され、SQLステートメント実行のリソース消費を分析し、SQLチューニングに使用できます。
- SQLプロファイリングは、プロファイリングパラメーターを構成することで有効になります。プロファイリングパラメーターは、グローバルにセッションレベルで設定できます。
- グローバルレベルはMySQLインスタンス全体に影響しますが、セッションレベルは現在のセッションにのみ影響します。
- このパラメーターをオンにした後、SQLステートメントを実行すると、IO、コンテキストスイッチング、CPU、メモリなどのリソースオーバーヘッドが記録されます。
- 表示プロファイルは5.0.37以降に追加されました。この機能を使用するには、MySQLのバージョンが5.0.37より大きいことを確認してください。
使い方
select version(); -- 查看数据库版本
show variables like "%profiling%"; -- 查看是否开启
set profiling=1; -- 开启profile
show profiles; -- 查看最近的SQL语句
ヘルプドキュメント
help profile; --查看帮助信息
SHOW PROFILE [type [, type] ... ]
[FOR QUERY n]
[LIMIT row_count [OFFSET offset]]
type: {
ALL --显示所有的开销信息
| BLOCK IO --显示块IO相关开销
| CONTEXT SWITCHES --上下文切换相关开销
| CPU --显示CPU相关开销信息
| IPC --显示发送和接收相关开销信息
| MEMORY --显示内存相关开销信息
| PAGE FAULTS --显示页面错误相关开销信息
| SOURCE --显示和Source_function,Source_file,Source_line相关的开销信息
| SWAPS --显示交换次数相关开销的信息
}
*Note*:
The SHOW PROFILE and SHOW PROFILES statements are deprecated and will
be removed in a future MySQL release. Use the Performance Schema
instead; see
https://dev.mysql.com/doc/refman/8.0/en/performance-schema-query-profil
ing.html
--上面描述SHOW PROFILE命令将会被移除,推荐用Performance Schema instead代替
--在Oracle数据库中,是通过autotrace来剖析单条SQL并获取真实的执行计划以及其开销信息
URL: https://dev.mysql.com/doc/refman/8.0/en/show-profile.html
公式サイト
パフォーマンススキーマの説明ドキュメント:https://dev.mysql.com/doc/refman/8.0/en/performance-schema-query-profiling.html
SHOW PROFILEの説明ドキュメント:https://dev.mysql.com/doc/refman /8.0/en/show-profile.html
show profile for query 167; -- 获取指定查询(Query_ID = 167)的开销
-- 查看特定部分的开销,如下为CPU部分的开销
show profile cpu for query 167 ;
-- 如下为MEMORY部分的开销
show profile memory for query 167 ;
-- 同时查看io和cpu
show profile block io,cpu for query 167;
-- 下面的SQL语句用于查询query_id为2的SQL开销,且按最大耗用时间倒序排列
set @query_id=167;
ステータスで次の条件が発生した場合、SQLの最適化が必要です
補足(グローバルクエリログを開く)
生产环境
この機能をオンにしないでください生产环境
この機能をオンにしないでください生产环境
この機能をオンにしないでください
测试环境
開いてください