亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

實例講解MySQL 慢查詢

瀏覽:3日期:2023-10-08 11:47:55

簡介

開啟慢查詢日志,可以讓MySQL記錄下查詢超過指定時間的語句,通過定位分析性能的瓶頸,才能更好的優(yōu)化數(shù)據(jù)庫系統(tǒng)的性能。

一、配置慢查詢

1、參數(shù)說明

slow_query_log : 慢查詢開啟狀態(tài)(默認關閉) slow_query_log_file : 慢查詢日志存放的位置(這個目錄需要MySQL的運行帳號的可寫權限, 一般設置為MySQL的數(shù)據(jù)存放目錄) long_query_time : 查詢超過多少秒才記錄(默認10秒)

2.查看慢查詢相關參數(shù)

show variables like ’slow_query%’;+---------------------------+----------------------------------+| Variable_name | Value |+---------------------------+----------------------------------+| slow_query_log | OFF || slow_query_log_file | /mysql/data/localhost-slow.log |+---------------------------+----------------------------------+show variables like ’long_query_time’;+-----------------+-----------+| Variable_name | Value |+-----------------+-----------+| long_query_time | 10.000000 |+-----------------+-----------+

3.配置慢查詢

它有兩種配置方式,一種是全局變量配置,一種是配置文件配置

(1)全局變量配置

--將 slow_query_log 全局變量設置為“ON”狀態(tài) set global slow_query_log=’ON’; --設置慢查詢日志存放的位置 set global slow_query_log_file=’/usr/local/mysql/data/slow.log’;--查詢超過1秒就記錄 set global long_query_time=1;

(2)修改配置文件my.cnf(linux環(huán)境下)

slow_query_log = ON slow_query_log_file = /usr/local/mysql/data/slow.log long_query_time = 1

總結:(1)通過全局變量配置好后,需要關閉會話后重新打開查詢才有效,通過配置文件需要重啟Mysql服務器后才有效(2) 因為開啟慢查詢會影響性能,一般建議通過全局變量配置,這樣重啟服務器又是默認關閉慢查詢狀態(tài)。

二、mysqldumpslow工具

mysqldumpslow是Mysql自帶的一個工具,有了它我們可以不用去上面的log文件去找,如果數(shù)據(jù)平凡操作,那么去log查下日志也是比較繁瑣的一件事。

1、主要命令

--s:是表示按照何種方式排序 --c:訪問次數(shù) --l:鎖定時間 --r:返回記錄 --t:查詢時間 --al:平均鎖定時間 --ar:平均返回記錄數(shù) --at:平均查詢時間 --t:即為返回前面多少條的數(shù)據(jù) --g:后面搭配一個正則匹配模式,大小寫不敏感

2、舉例

--1.得到返回記錄集最多的10個SQL mysqldumpslow -s -r -t 10 /logs/mysql-slow.log --2.得到訪問次數(shù)最多的10個SQL mysqldumpslow -s -c -t 10 /logs/mysql-slow.log --3.得到按照時間排序的前10條里面含有做鏈接的查詢語句 mysqldumpslow -s t -t 10 -g 'left join' /logs/mysql-slow.log --4.另外建議在使用這些命令時結合|和more使用,否則又可能出現(xiàn)爆屏情況 mysqldumpslow -s r -t 10 /logs/mysql-slow.log | more

三、show profile

Show profiles是5.0.37之后添加的,要想使用此功能,要確保版本在5.0.37之后。

1、開啟 show profile

show variables like 'profiling';--默認是關閉的+---------------+-------+| Variable_name | Value |+---------------+-------+| profiling | OFF |+---------------+-------+--開啟set profiling=1;

2、運行指定SQL

我這里運行幾條SQL語句,然后運行

show profiles;--會列出所有在這個開啟期間執(zhí)行的SQL,并附上QUERY ID+----------+------------+----------------------------+| Query_ID | Duration | Query |+----------+------------+----------------------------+| 1 | 0.00168025 | select * from vhr.employee || 2 | 0.06573200 | select * from vhr.hr |+----------+------------+----------------------------+--我們可以看到顯示最近操作的兩條語句,列表大小由profiling_history_size會話變量控制, 默認值為15.最大值為100

3、診斷具體SQL

show profile cpu,block io for queryid --對應2中的query_idSHOW PROFILE CPU FOR QUERY 1;--查詢query_id為1的具體信息+----------------------+----------+----------+------------+| Status| Duration | CPU_user | CPU_system |+----------------------+----------+----------+------------+| starting | 0.000194 | 0.000000 | 0.000000 || checking permissions | 0.000012 | 0.000000 | 0.000000 || Opening tables | 0.000030 | 0.000000 | 0.000000 || init | 0.000053 | 0.000000 | 0.000000 || System lock | 0.000011 | 0.000000 | 0.000000 || optimizing | 0.000003 | 0.000000 | 0.000000 || statistics | 0.000014 | 0.000000 | 0.000000 || preparing | 0.000010 | 0.000000 | 0.000000 || executing | 0.000001 | 0.000000 | 0.000000 || Sending data | 0.001213 | 0.000000 | 0.000000 || end | 0.000014 | 0.000000 | 0.000000 || query end | 0.000012 | 0.000000 | 0.000000 || closing tables | 0.000019 | 0.000000 | 0.000000 || freeing items | 0.000070 | 0.000000 | 0.000000 || cleaning up | 0.000025 | 0.000000 | 0.000000 |+----------------------+----------+----------+------------+

日常開發(fā)需要注意的結論:

1 converting HEAP to MyISAM : 查詢結果太大,內存都不夠用了,往磁盤上搬了; 2 creating tmp table : 創(chuàng)建臨時表,拷貝數(shù)據(jù)到臨時表,然后再刪除; 3 copying to tmp table on disk :把內存中臨時表復制到磁盤,危險!!! 4 locked

注:以上四個中若出現(xiàn)一個或多個,表示sql 語句 必須優(yōu)化。

以上就是實例講解MySQL 慢查詢的詳細內容,更多關于MySQL 慢查詢的資料請關注好吧啦網(wǎng)其它相關文章!

相關文章:
主站蜘蛛池模板: 国产99视频精品免费视频7 | 欧美成人一区二区三区在线电影 | 国产精品欧美亚洲 | 国产日韩高清一区二区三区 | 喷水网站 | 久久精品国产99久久72 | 色天使色婷婷丁香久久综合 | 日本hdxxxxx护士免费的 | 久久久久久亚洲精品不卡 | 久久久青青草 | 免费在线一区二区三区 | 国产区综合 | 精品国产成人三级在线观看 | 伊人久久大香线焦综合四虎 | 欧美久久超级碰碰碰二区三区 | 欧美在线亚洲 | 夜色在线影院 | 免费一级a毛片在线播出 | 国产在线成人a | aaaaaa级特色特黄的毛片 | 欧美一区二区在线播放 | 鲁丝片一区二区三区毛片 | 国产高清一区二区三区四区 | 秀人网福利视频在线观看 | 国产精品爱久久电影 | 久草免费资源在线 | 毛片一级做a爰片性色 | 国产精品xxx| 久久国产自偷自偷免 | 国产视频在| 91中文字幕在线观看 | 欧美日韩国产另类在线观看 | 欧美日韩综合在线视频免费看 | 国产乱码一区二区三区四川人 | 黑色丝袜高跟国产在线91 | 91啦中文成人 | 中文字幕1页 | 国产三级a三级三级午夜 | 久久黄色免费网站 | 国产大乳喷奶水在线看 | 伊人一区二区三区 |