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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

MySQL数据库:使用show profile命令分析性能

發(fā)布時(shí)間:2024/9/30 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL数据库:使用show profile命令分析性能 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1、show profile的作用:

能夠查出最近執(zhí)行的SQL語(yǔ)句的運(yùn)行狀態(tài),包括在運(yùn)行過程中執(zhí)行了哪些操作,各占用了多少時(shí)間,利用proflie 功能,可以分析一個(gè)SQL具體的執(zhí)行代價(jià)是怎么樣的,尤其是可以分析它的最大瓶頸在哪里。目前profile 功能可提供除了內(nèi)存以外的其他資源消耗統(tǒng)計(jì),例如CPU、I/O、CONTEXT、SWAP等。大部分情況下,profile 的結(jié)果我們主要關(guān)注兩列:Status、Duration,前者表示的是profile 里的狀態(tài),后者是該狀態(tài)的耗時(shí)。因此,我們最主要的是關(guān)注處于哪個(gè)狀態(tài)耗時(shí)最久,這些狀態(tài)中,哪些是可以進(jìn)一步優(yōu)化的。

?

2、show profile 語(yǔ)法:

SHOW PROFILE [type [, type] ... ]

[FOR QUERY n]

[LIMIT row_count [OFFSET offset]]

?

type參數(shù):

| ALL:顯示所有開銷信息

| BLOCK IO:阻塞的輸入輸出次數(shù)

| CONTEXT SWITCHES:上下文切換相關(guān)開銷信息

| CPU:顯示CPU的相關(guān)開銷信息?

|?IPC:接收和發(fā)送消息的相關(guān)開銷信息

| MEMORY :顯示內(nèi)存相關(guān)的開銷,目前無用

| PAGE FAULTS :顯示頁(yè)面錯(cuò)誤相關(guān)開銷信息

| SOURCE :列出相應(yīng)操作對(duì)應(yīng)的函數(shù)名及其在源碼中的調(diào)用位置(行數(shù))?

| SWAPS:顯示swap交換次數(shù)的相關(guān)開銷信息

?

LIMIT row_count子句用于限制輸出行數(shù)。

?

3、show profile / show profiles的使用:

show profile 以及 show profiles語(yǔ)句可以顯示當(dāng)前會(huì)話過程中執(zhí)行的sql語(yǔ)句的性能(profiling)信息。

(1)profiling功能由MySQL會(huì)話變量 : profiling控制,默認(rèn)是OFF關(guān)閉狀態(tài),查看當(dāng)前session是否開啟profile功能:

select @@profiling;

show variables like ‘profiling’;?

(2)開啟profiling:

set profiling=ON;

(3)運(yùn)行SQL:

隨便運(yùn)行幾條SQL,以便show profiles 的日志分析。

(4)查看結(jié)果:

(4.1)show profiles

show profiles 顯示最近發(fā)給服務(wù)器的多條語(yǔ)句,條數(shù)根據(jù)會(huì)話變量profiling_history_size定義,默認(rèn)是15,最大值為100。設(shè)為0等價(jià)于關(guān)閉profiling 分析功能。除SHOW PROFILE和SHOW PROFILES之外,所有sql語(yǔ)句的性能信息都會(huì)被記錄,甚至包括有錯(cuò)誤的語(yǔ)句。

show profiles;

(4.2)show profile

用于單獨(dú)分析最近一條執(zhí)行的sql語(yǔ)句的詳細(xì)資源占用信息和工作狀況,默認(rèn)顯示狀態(tài)以及它們持續(xù)的時(shí)間。

show profile;

可以給show profile 指定一個(gè) for query id 來查看指定 id 的語(yǔ)句,還可以給輸出添加新的列。如,查看用戶和CPU使用。可以用如下命令。(詳細(xì)參數(shù)請(qǐng)看本文第2點(diǎn)的type參數(shù))

show profile cpu,block io for query id;

id 為 show profiles 查出來的某條記錄的Query_ID。

?

4、作用范圍:

(1)這個(gè)命令只是在本會(huì)話內(nèi)起作用,即無法分析本會(huì)話外的語(yǔ)句。開啟分析功能后,所有本會(huì)話中的語(yǔ)句都被分析(甚至包括執(zhí)行錯(cuò)誤的語(yǔ)句),除了SHOW PROFILE和SHOW PROFILES兩句本身。

(2)profiling是會(huì)話級(jí)的,當(dāng)會(huì)話結(jié)束,與之相關(guān)的profiling信息也會(huì)隨之消失。

(3)profiling是針對(duì)進(jìn)程(process)而非線程(threads),因此運(yùn)行在服務(wù)器上的其他服務(wù)進(jìn)程可能會(huì)影響分析結(jié)果.

?

總結(jié)

以上是生活随笔為你收集整理的MySQL数据库:使用show profile命令分析性能的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。