SQL优化(二)-- 慢查询
1.慢查詢?nèi)罩?/h2>
MYSQL的慢查詢?nèi)罩臼荕ysql提供的一種日志記錄方式,它主要是用來記錄mysql執(zhí)行語句過程中,響應(yīng)時(shí)間超過閥值的語句,這個(gè)閥值可以通過long_query_time去指定,比如說如果我們將long_query_time指定為5,則意思執(zhí)行耗時(shí)5秒以上的語句都會被我們的慢查詢?nèi)罩窘o記錄下來.
2.慢查詢?nèi)罩镜淖饔?/h2>
通過使用慢查詢?nèi)罩?我們可以先捕獲耗時(shí)的語句,然后再結(jié)合explain執(zhí)行計(jì)劃進(jìn)行全面的分析,從而達(dá)到優(yōu)化的目的
默認(rèn)情況下,mysql數(shù)據(jù)庫并沒有開啟慢查詢?nèi)罩?因?yàn)殚_啟慢查詢?nèi)罩居涗洷旧砭托枰臄?shù)據(jù)庫服務(wù)器性能,需要我們手動來開啟,如果不是專門做優(yōu)化的話,不建議開啟慢查詢?nèi)罩?/p>
3.開啟慢查詢
查看是否開啟和如何開啟慢查詢?nèi)罩?/p> 1 -- 查看 2 show variables like '%slow_query_log%'; 3 --開啟(注意:只是臨時(shí)生效,數(shù)據(jù)庫重啟之后,失效) 4 set global slow_query_log=1; 5 --永久開啟 6 -- 1.修改my.cnf文件,在[mysqld]下增加或修改參數(shù) 7 slow_query_log=1; 8 slow_query_log_file="文件路徑/kaijun-slow.log"; (如果不指定這一行的話,系統(tǒng)默認(rèn)會給一個(gè)默認(rèn)文件名) 9 -- 2. 重啟mysql服務(wù)器
設(shè)定慢查詢?nèi)罩镜拈y值
1 -- 查看當(dāng)前閥值(默認(rèn)是10s) 2 show global variables like 'long_query_time'; 3 4 -- 設(shè)置閥值 5 long_query_time=秒數(shù) 6 -- 注意: 只有sql語句耗時(shí)大于long_query_time的語句才會被記錄下來調(diào)試語句
select sleep(秒數(shù));查看當(dāng)前系統(tǒng)中慢查詢出現(xiàn)的次數(shù)
show global status like '%Slow_queries%';慢查詢開啟配置模版
1 slow_query_log=1 2 slow_query_log_file="文件路徑/kaijun-slow.log" 3 long_query_time=秒數(shù) 4 log_output=file,table (日志輸出到文件和mysql數(shù)據(jù)庫中的slow_log表中)轉(zhuǎn)載于:https://www.cnblogs.com/gdwkong/articles/8504937.html
總結(jié)
以上是生活随笔為你收集整理的SQL优化(二)-- 慢查询的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 22-高级特性之内建方法(3)
- 下一篇: 【Flask】SelectedField