欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql語句性能分析工具之profiling用法

 更新時間:2023年12月13日 15:36:54   作者:zyjzyjjyzjyz  
這篇文章主要介紹了mysql語句性能分析工具之profiling用法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

以往我們已經(jīng)介紹了一個mysql的分析工具:mysql慢查詢?nèi)罩痉治龉ぞ撸╬t-query-digest),可以看我的文章:mysql慢查詢?nèi)罩痉治龉ぞ撸╬t-query-digest)

一、profiling的介紹

sql查詢慢的情況很常見,對于慢sql的優(yōu)化有三個步驟,又稱優(yōu)化三板斧。

  • 板斧一:查看執(zhí)行計劃explain
  • 板斧二:建立合適索引
  • 板斧三:使用合適的連接關(guān)系和過濾條件來實現(xiàn)sql語句的優(yōu)化

如果執(zhí)行計劃正確sql語句的性能還很慢,可以通過mysql的profiling工具進(jìn)行定位分析。

為了更精準(zhǔn)的定位一條sql語句的性能問題,需要清楚的直到這條sql語句運行時消耗多少系統(tǒng)資源。

mysql中profiling工具可以滿足此需求,通過該工具可以獲取一條sql語句在執(zhí)行過程中多種資源的消耗情況——比如cpu,io,ipc,swap等資源消耗情況。

二、profiling使用方法

2.1、啟用命令

set profiling = 1;

2.2、啟動命令后,運行想要查詢性能的sql語句

select * from xiatui where name like '0%' and age = '9803' and sex =0;

2.3、查詢上述sql語句信息

show profiles;

 說明:

  • Query_ID:sql語句的id編號,這個編號會在步驟4、5用到
  • Duration:sql語句執(zhí)行時長
  • Query:具體的sql語句

2.4、查詢資源消耗情況

SHOW PROFILE CPU, BLOCK IO FOR QUERY 360;

上述360就是第三步驟的Query_ID值,想要查詢哪條sql語句,就輸入哪條sql語句對應(yīng)的id值。

2.5、查詢某條sql語句的具體執(zhí)行時間

SHOW PROFILE FOR QUERY 391;

優(yōu)化建議:

如果想要優(yōu)化某條sql語句,可以關(guān)注一下該條sql語句的show profile結(jié)果中每個階段的耗時,分析耗時最長的階段。

如果status列出現(xiàn)下面的信息就可以考慮對sql語句進(jìn)行優(yōu)化:

  • converting heap to  MyISAM:查詢結(jié)果太大,內(nèi)存不夠用
  • creating tmp table:創(chuàng)建了臨時表。先拷貝數(shù)據(jù)到臨時表,用完后再刪除臨時表。
  • copying to tmp table on disk:把內(nèi)存中臨時表復(fù)制到磁盤上
  • locked:發(fā)生了死鎖行為。                

2.6、關(guān)閉

set profiling = 0;

三、整體使用過程

set profiling = 1;
select /*+ no_icp(xiatui) */ * from xiatui where name like '0%' and age = '9803' and sex =0;
select * from xiatui where name like '0%' and age = '9803' and sex =0;
show profiles;
set profiling = 0;

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL外鍵約束常見操作方法示例【查看、添加、修改、刪除】

    MySQL外鍵約束常見操作方法示例【查看、添加、修改、刪除】

    這篇文章主要介紹了MySQL外鍵約束常見操作方法,結(jié)合實例形式分析了mysql針對外鍵約束的查看、添加、修改、刪除等相關(guān)操作實現(xiàn)方法,需要的朋友可以參考下
    2018-05-05
  • 解決MySQL 5.7中定位DDL被阻塞的問題

    解決MySQL 5.7中定位DDL被阻塞的問題

    這篇文章主要介紹了MySQL 5.7中如何定位DDL被阻塞的問題,在MySQL 5.7中,針對MDL,引入了一張新表performance_schema.metadata_locks,該表可對外展示MDL的相關(guān)信息,包括其作用對象,類型及持有等待情況。對此問題感興趣的朋友參考下本文
    2018-08-08
  • MySQL和Redis的數(shù)據(jù)一致性問題

    MySQL和Redis的數(shù)據(jù)一致性問題

    這篇文章主要介紹了MySQL和Redis的數(shù)據(jù)一致性問題,下面文章圍繞Redis大的相關(guān)資料展開詳情,需要的小伙伴可以參考一下
    2022-04-04
  • JMeter對MySQL數(shù)據(jù)庫進(jìn)行壓力測試的實現(xiàn)步驟

    JMeter對MySQL數(shù)據(jù)庫進(jìn)行壓力測試的實現(xiàn)步驟

    本文主要介紹了JMeter對MySQL數(shù)據(jù)庫進(jìn)行壓力測試的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • MySQL多表聯(lián)合查詢、連接查詢、子查詢的實現(xiàn)

    MySQL多表聯(lián)合查詢、連接查詢、子查詢的實現(xiàn)

    本文主要介紹了MySQL多表聯(lián)合查詢、連接查詢、子查詢的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Mysql實現(xiàn)主從配置和多主多從配置

    Mysql實現(xiàn)主從配置和多主多從配置

    大型網(wǎng)站為了軟解大量的并發(fā)訪問,除了在網(wǎng)站實現(xiàn)分布式負(fù)載均衡,遠(yuǎn)遠(yuǎn)不夠。必然會想到假設(shè)服務(wù)器群,來分擔(dān)主數(shù)據(jù)庫的壓力。今天總結(jié)一下利用MySQL主從配置,減輕數(shù)據(jù)庫壓力
    2021-06-06
  • 解決Mysql:ERROR?1045?(28000):Access?denied?for?user?‘root‘@‘localhost‘?(using?password:?NO)的方法

    解決Mysql:ERROR?1045?(28000):Access?denied?for?user?‘roo

    最近在我們連接數(shù)據(jù)庫的時候遇到個問題,感覺還挺容易遇到的,所以總結(jié)下,這篇文章主要給大家介紹了關(guān)于解決Mysql:ERROR?1045?(28000):Access?denied?for?user?‘root‘@‘localhost‘?(using?password:?NO)的方法,需要的朋友可以參考下
    2022-06-06
  • MySQL數(shù)據(jù)同步Elasticsearch的4種方案

    MySQL數(shù)據(jù)同步Elasticsearch的4種方案

    本文主要介紹了MySQL數(shù)據(jù)同步Elasticsearch的4種方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • mysql本地登錄無法使用端口號登錄的解決方法

    mysql本地登錄無法使用端口號登錄的解決方法

    這篇文章主要介紹了mysql本地登錄無法使用端口號登錄的解決方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-06-06
  • MySQL中ON DUPLICATE key update的使用

    MySQL中ON DUPLICATE key update的使用

    本文主要介紹了MySQL中ON DUPLICATE key update的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05

最新評論