mysql profiling的使用與sql分析

2021-09-05 01:17:50 字數 1571 閱讀 2113

mysql在5.0.3版本之後新增了profiling來進行效能分析

首先進入資料庫

show profiles;

mysql預設是關閉的,也就是off

需要設定成1開啟,也就是on,注意設定以後退出視窗之後會還原,要永久生效貌似需要重啟mysql才行

檢視是否開啟:

開啟:set profiling=1

在這之後每次執行的sql語句都會被記錄。

然後可以檢視具體每個sql的具體情況,執行時間、cpu消耗等

新增測試資料測試:

我自己新增了測試100w+的資料,資料內容亂寫的。本來想一次新增1000w的,電腦記憶體不夠異常了。

測試資料**:

@test

public void add()

pstm.executebatch();

conn.commit();

long endtime = system.currenttimemillis();

system.err.println("ok,用時:" + (endtime - starttime));

} catch (exception e) finally catch (sqlexception e)

}if (conn != null) catch (sqlexception e)

}} }

上面一次新增100w資料用了150秒,還能接受。表字段在10個左右

現在查詢這張表資料,加上之前新增的測試資料,一共有120w+的測試資料。沒有用欄位名,直接*查詢。看看sql的具體執**況

執行了sql語句:select * from sys_operation_log where message like '%admin%';

接下來肯定是個漫長的等待過程,沒用到索引,全表掃瞄等,資料量百萬級,肯定不會快,等吧,目的主要分析profiles

再次執行命令:show profiles;

4是執行的sql語句

show profile all for query 4檢視該sql所有執行資訊

裡面每一項,網上資料很多這裡不一一介紹了。

測試完畢,關閉引數

set profiling=0

退出命令視窗。

container of 的的的原理

另外一篇,同樣精彩,揭開linux核心中container of的神秘面紗 華清遠見嵌入式學院講師。在linux 核心中有乙個大名鼎鼎的巨集container of 這個巨集是用來幹嘛的呢?我們先來看看它在核心中是怎樣定義的。呵呵,乍一看不知道是什麼東東。我們先來分析一下container of p...

存在的就是合理的,發生的即是必然的。

筆者有時候會想,什麼是對,什麼是錯?對於追求某一件事情之前首先會考慮,為什麼我要做這件事情。所以經過自我分析和生活周邊環境的總結。我認為,對於乙個人來,這是在站在個體的角度上說。什麼是對的?就是你自己覺得是對的,它就是對的。不過這個只是你自己的想法。主觀上的正確,不代表客觀上也受到了別人的認可。就拿...

Apache的rewrite的重寫相關的引數

apache mod rewrite規則重寫的標誌一覽 使用mod rewrite時常用的伺服器變數 rewriterule規則表示式的說明 匹配任何單字元 chars 匹配字串 chars chars 不匹配字串 chars text1 text2 可選擇的字串 text1或text2 匹配0到1...