SQL排查
慢查詢?nèi)罩荆?/h2>
** MySQL提供的一種日志記錄用于記錄MySQL中響應(yīng)時間超過 閥值 的 sql語句 (long_query)**
** 慢查詢?nèi)罩灸J(rèn)是關(guān)閉**
** 建議:開發(fā)調(diào)優(yōu)是打開 而最終部署時關(guān)閉 **
檢查是否開啟了慢查詢?nèi)罩?/h3>
** show variables like '%slow_query_log';**
臨時開啟:
set global slow_query_log=1
內(nèi)存開啟
image
永久開啟:
image
閥值: show variables like '%long_query_time%'靠汁;
臨時設(shè)置閥值: set global long_query_time = 5豆胸;
重新登錄生效 不需要重啟服務(wù)
image
查詢超過閥值得sql : show global status like '%slow_queries';
cat /var/lib/mysql/localhost-slow.log
** MySQL提供的一種日志記錄用于記錄MySQL中響應(yīng)時間超過 閥值 的 sql語句 (long_query)**
** 慢查詢?nèi)罩灸J(rèn)是關(guān)閉**
** 建議:開發(fā)調(diào)優(yōu)是打開 而最終部署時關(guān)閉 **
** show variables like '%slow_query_log';**
臨時開啟:
set global slow_query_log=1
內(nèi)存開啟
永久開啟:
閥值: show variables like '%long_query_time%'靠汁;
臨時設(shè)置閥值: set global long_query_time = 5豆胸;
重新登錄生效 不需要重啟服務(wù)
查詢超過閥值得sql : show global status like '%slow_queries';
cat /var/lib/mysql/localhost-slow.log
慢查詢閥值和mysqldumpslow工具
(2)通過mysqldumpslow
工具查看慢sql 可以通過一些過濾條件 快速查找需要定位的慢sql
mysqldumpslow --help
s:order排序方式
r:逆序
l:鎖定時間
g:正則匹配模式
-- 獲取返回記錄組多的3個sql : mysqldumpslow -s r -t 3 /var/lib/mysql/localhost-slow.log
-- 獲取訪問次數(shù)最多的3個SQL mysqldumpslow -s c -t 3 /var/lib/mysql/localhost-slow.log
--- 按照時間排序,前10條包含left join 查詢語句的sql mysqldumpslow -s t -t 10 -g "left join"
分析海量數(shù)據(jù)(show profile)
用存儲過程 渠脉、存儲函數(shù) 模擬海量數(shù)據(jù)
show profiles
show variables like '%profiling’
set profiling = on;
查詢?nèi)秩罩?/a>-general_log(全局日志)
這些全局的記錄操作 僅僅在開發(fā)和調(diào)優(yōu)過程中打開即可抱婉,部署時一定要關(guān)閉
show variables like '%general_log%';
- - 執(zhí)行的所有sql記錄在表中
set global general_log = 1
set global log_output ='table'
- -執(zhí)行的所有sql記錄在文件中
set global log_output ='file'
set global general_log_file ='/tmp/general.log'
set global general_log= 1
開啟全局日志 會記錄所有sql : 會被記錄 到 mysql.general_log表中档叔。
select * from mysql.general_log