是mysql提供的一種日誌記錄,用來記錄在mysql中響應時間超過閾值的語句,具體指執行時間超過long_query_time值的sql, 則會被記錄到慢查詢日誌中;long_query_time的預設值為10s,sql語句執行超過10s,則記錄下來,在結合explain + sql語句分析。
(1)檢視是否開啟慢查詢日誌,預設關閉狀態 > show variables like '%slow_query_log%'
(2)開啟慢查詢日誌 > set global slow_query_log=1;
(3)慢查詢日誌引數配置
(1)檢視當前多少秒算慢 > show variables like '%long_query_time%'
(2)設定慢查詢日誌的闕值時間 >set global long_query_time=3
(4)執行sql語句,如查詢超過闕值,則記錄到慢查詢日誌檔案中,通過檢視檔案獲取sql語句並分析
(5)查詢當前系統中有多少條慢查詢記錄 >show global status like '%slow_queries%'
給慢查詢日誌提供了查詢相關的命令,方便獲取想要的慢查詢日記記錄資訊(mysqldumpslow -help命令說明)
檢視mysqldumpslow的幫助資訊:
(1)s:表示按照何種方式排序
(2)c:訪問的次數
(3)l:鎖定時間
(4)r:返回的記錄
(5)t:查詢時間
(6)al:平均鎖定時間
(7)ar:平均返回記錄數
(8)at:平均查詢時間
(9)t:為返回前面多少條資料
(10)g:後邊搭配乙個正則匹配模式,大小寫不敏感
示範:
(1)得到返回記錄集最多的10個sql > mysqldumpslow -s r -t 10 /var/slow-log.log(慢查詢日誌路徑c
(2)得到訪問次數最多的10個sql > mysqldumpslow -s c -t 10 /var/slow-log.log
(3)得到按照時間排序的前10裡面含有左連線的查詢語句 >mysqldumpslow -s t -t 10 -g "left join" var/slow-log.log
(4)建議在使用這些命令時結合|和more使用,否則有可能出現爆屏情況 >mysqldumpslow -s r -t 10 /var/slow-log.log | more
是mysql提供可以用來分析當前會話中的語句執行的資源消耗情況,可以用於sql的調優的測量,預設的情況下,引數處於關閉的狀態,並儲存最近15次的執行結果。
(1)是否支援,檢視當前的mysql版本是否支援 >show variables like '%profiling%'
(2)開啟功能,預設為關閉,使用前需要開啟 >set profiling=on
(3)執行sql
(4)檢視結果,show profile
(5)診斷sql,show profile cpu,block io for query number -- number:上一步查詢出來的數字號碼
查詢的型別有:
all:顯示所有的開銷資訊
(6)結果分析結論
1、converting heap to ondisk:表示查詢結果太大,記憶體都不夠用了往磁碟上搬了(1)開啟慢查詢日誌,設定闕值、捕獲慢sql2、creating temp table 建立臨時表(查詢時將結果複製到臨時表中,用完在刪除)
3、copying to temp table ondisk:把記憶體中的臨時表複製到磁碟中,耗io
(2)explain + 慢sql分析
(3)show profile查詢sql在mysql伺服器裡面的執行細節和生命週期情況
(4)sql資料庫伺服器的引數調優
索引優化分析(二)
explain sql語句 explain select from table name查詢結果如下 1 id selectct 查詢的序列號,包含一組數字,表示查詢中執行select子句或操作表的順序 查詢順序 a id相同,執行順序由上至下 b id不同,如果是子查詢,id的序號會遞增,id值越...
MySQL索引優化分析
1.通過訂單號查詢某個訂單,用唯一索引 資料量幾百萬以上 2.order by 排序時,後面欄位加 強制指定索引 select from orderforce index idx ordere order by order level,input date 哪些情況需要建索引 1 主鍵,唯一索引 2...
多表索引優化分析
圖為兩張表 左連線用右表索引 select from class left join book on class.card book.card 那麼索引應該建在右表book的card欄位。右連線用左表索引 如果索引已然建立在class的card欄位上,那麼使用select from book rig...