用於記錄mysql種響應時間超過閾值
開啟慢日誌
show variables 『%slow_query-log%』
臨時開啟
set global slow_query_log = 1
關閉服務
永久開啟
/etc/my.cnf [mysqld]
修改日誌
慢查詢閾值 ,臨時設定和永久設定,改完之後重新登入後生效,不需要重啟服務
long_query_time = 3
select sleep(4)休眠4秒
show global status like 『%slow_queries%』
檢視慢查詢日誌檔案 cat …
自帶mysqldumpslow --help 篩選,查詢慢日誌檔案(返回資料最多,訪問次數最多,包含左外連線)
儲存過程(無return)、儲存函式(有return)
需求:
產生隨機數,隨機字串
randstring(6) ->adacva 模擬名稱 字串從1開始
儲存函式:
delimiter $ --防止語義報錯--結束符號
create function randstring(n int) returns varchar(255)
begin
declare all_str varchar(100) default 'adadsadwfwvvwfwafafaf'
declare return_str varchar(255) default '';
declare i int default 0;
while i開啟了慢查詢日誌編寫儲存過程或者儲存函式就會報這個錯誤。
臨時解決和永久解決(設定引數變數和修改配置檔案)
create functuin ran_num() returns int(5)
begin
declare i int default 0;
set i = floor (rand()*100)l
return i;
end$
–通過儲存過程插入海量資料
create procedure insert_emp(in eid_start int(10),int data_time int(10))
begin
declare i int default 0;
set autocommit = 0;
repeat
insert into emp values(eid_start +i,randstring(5),'other',rutn_num());
set i = i+1;
util i = data_times
end repeat;
end $
—呼叫儲存過程和函式實現模擬海量資料
call insert_num()
(1)show profiles;–預設關閉
會記錄profiling開啟後的語句全部sql執行時間 duration代表總共花費的時間
(2)–精確分析:sql診斷
show profile all for query 第幾條
all 可以替換為你希望看見的關鍵部分時間花費
例如:cpu,等
(3)全域性查詢日誌:記錄開啟之後的全部sql語句(只在調優的時候開啟)
set gloobal general_log =1
set global log_output = 『table』
會被記錄mysql.general_log表中
(分析) select * from mysql.general.log
mysql慢查詢日誌查詢與分析
mysql下執行show variables like slow query log 上圖我這是本地的mysql,慢查詢沒開。slow query log on和off分別表示慢查詢有沒有開。slow query log file 慢查詢日誌的路徑。開啟日誌 我們可以看到 time 180810 1...
Mysql 慢查詢和慢查詢日誌分析
眾所周知,大訪問量的情況下,可新增節點或改變架構可有效的緩解資料庫壓力,不過一切的原點,都是從單台mysql開始的。下面總結一些使用過或者研究過的經驗,從配置以及調節索引的方面入手,對mysql進行一些優化。第一步應該做的就是排查問題,找出瓶頸,所以,先從日誌入手 開啟慢查詢日誌 mysql sho...
Mysql 慢查詢和慢查詢日誌分析
眾所周知,大訪問量的情況下,可新增節點或改變架構可有效的緩解資料庫壓力,不過一切的原點,都是從單台mysql開始的。下面總結一些使用過或者研究過的經驗,從配置以及調節索引的方面入手,對mysql進行一些優化。第一步應該做的就是排查問題,找出瓶頸,所以,先從日誌入手 開啟慢查詢日誌 mysql sho...