日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

获取Mysql语句执行时的详细信息

發布時間:2025/3/20 数据库 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 获取Mysql语句执行时的详细信息 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 通過SHOW STATUS獲取更多信息

在調試mysql語句時,如果執行計劃不能提供足夠的信息支持判斷,可以通過在語句執行前執行FLUSH STATUS,執行完語句后執行SHOW STATUS LIKE 獲取更多信息,例如:

SHOW STATUS WHERE Variable_name LIKE 'Handler%' OR variable_name LIKE 'Created%';其執行部分結果解釋如下:

屬性

釋義

Created_tmp_disk_tables

語句執行時,Mysql創建的磁盤臨時表個數;越少越好

Created_tmp_files

語句執行時,Mysql創建的臨時文件個數;

Created_tmp_tables

語句執行時,Mysql創建的臨時表總個數;越少越好

Handler_read_first

讀取第一條索引的次數;

此值越高,表明Mysql進行了多次的全索引掃描(full index scan);而當數據在磁盤不在內存中時,全索引掃描通常會導致許多隨機讀(random read),這通常比全表掃描(full table scan)采用的順序掃描性能更差;

Handler_read_key

通過索引讀取數據的次數;

此值越高表示查詢正確地走了索引;

Handler_read_next

通過索引順序讀取下一行的次數;當出現索引覆蓋掃描或者通過在索引列限制了范圍時,該次數會增加;

Handler_read_prev

通過索引順序讀取前一行的次數;這種讀取方式主要用于對ORDER BY … DESC 語句的優化中

Handler_read_rnd

通過固定的位置讀取一行數據的次數;越低越好;

通常在需要對結果排序時,此值會比較高;

表明可能存在全表掃描或者不恰當的join

Handler_read_rnd_next

通過直接讀取數據文件獲取下一行數據的次數;越低越好;

通常在進行數據掃描時,此值會比較高;// TODO

通常表明索引設置不當或者查詢未有效利用索引;

Handler_write

向表中插入數據的次數;

在生成臨時表的查詢中,此值表示臨時表的數據量大小;

2. 通過查看PROFILE獲取更多信息

Mysql 的profile保存了當前會話若干語句在執行時所使用資源的情況,通過會話級的參數profiling控制是否保存profile信息,可以通過以下語句打開(下述的方法將在將來的版本中不再支持,官方建議通過Performanc Schema進行替代):

set profiling=1;

打開會話profile后執行語句,mysql會保留該信息,可以通過show profiles查看目前記錄了profile信息的查詢,以query_id標識順序。然后可以通過如下語句獲取某條語句的profile信息:

show profile (cpu) for query query_id;

示例的結果如下,duration列出各階段耗時,CPU_user及CPU_system分別列出用戶態和系統態的CPU耗時。

Status

Duration

CPU_user

CPU_system

starting

0.000044

0

0

checking permissions

0.000005

0

0

Opening tables

0.000019

0

0

init

0.000009

0

0

System lock

0.000054

0

0

optimizing

0.000035

0

0

statistics

0.000012

0

0

preparing

0.000009

0

0

executing

0.000002

0

0

Sending data

0.014502

0.024

0

end

0.000012

0

0

query end

0.000005

0

0

closing tables

0.000009

0

0

freeing items

0.000155

0

0

cleaning up

0.000014

0

0

轉載于:https://www.cnblogs.com/luojiahu/p/10889957.html

總結

以上是生活随笔為你收集整理的获取Mysql语句执行时的详细信息的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。