MySQL Show Profile進行SQL分析

2021-10-23 16:09:48 字數 950 閱讀 2214

是mysql提供可以用來分析當前會話中語句執行的資源消耗情況,可以用於sql的調優的測量

預設情況下,引數處於關閉狀態,並保持最近15次的執行結果。

• 1.是否支援,看看當前mysql版本是否支援

• 2.開啟功能,預設是關閉,使用前需要開啟

-- 檢視是否開啟, 預設關閉 off

show variables like

'profiling'

;-- 開啟

set profiling=on;

-- 開啟有什麼用? 可儲存最近 15 次的執行結果

'(隨便寫幾條語句測試一下)'

-- 檢視每條語句使用的時間

show profiles;

-- 檢視語句具體執行了哪些步驟及其時間

show profile cpu,block io for query 1

;

all 顯示所有的開銷資訊

block io 顯示塊io相關開銷

cpu 顯示cpu相關開銷資訊

ipc 顯示傳送和接收相關開銷資訊

memory 顯示記憶體相關開銷資訊

page faults 顯示頁面錯誤相關開銷資訊

converting heap to myisam查詢結果太大,記憶體都不夠用了往磁碟上搬

creating tmp table 建立臨時表

copying to tmp table on disk 把記憶體中臨時表複製到磁碟,危險

locked

開啟命令

set global general_log = 1;

將sql語句寫到表中

set global log_output = 『table』;

你所編寫的sql語句,會記錄到mysql庫里的genral_log表

select * from mysql.general_log;

oracle進行sql優化

優化前 select sqdbh,sqr,bm,sqrq,skdwbm,skdwmc,sqfkje n as xz flag sjfkrq,fkdwkhyh from yw fksqd inner join rs department on bm d no left join cw znhs rk ...

利用sql報錯幫助進行sql注入

我們可以利用sql報錯幫助進行sql注入,這裡以sql server 為例 sql查詢時,若用group by子句時,該子句中的字段必須跟select 條件中的字段 非聚合函式 完全匹配,如果是select 那就必須將該表中所有列名都包含在group by 中 若少了哪個,就會報錯,報錯中會提示如下...

用SQL進行多表查詢

所謂多表查詢是相對單錶而言的,指從多個資料表中查詢資料,這裡我們主要學習從兩個資料表中如何查詢資料的方法。4.3.1 無條件多表查詢 無條件多表查詢是將各表的記錄以 笛卡爾 積的方式組合起來。如scott.dept表共有4條記錄,scott.emp表共有14條記錄,其 笛卡爾 積將有4 14 56條...