這篇文章主要介紹“MySQL慢查詢?nèi)罩镜牟榭捶绞健?,在日常操作中,相信很多人在MYSQL慢查詢?nèi)罩镜牟榭捶绞絾栴}上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”MYSQL慢查詢?nèi)罩镜牟榭捶绞健钡囊苫笥兴鶐椭?!接下來,請跟著小編一起來學(xué)習(xí)吧!
企業(yè)建站必須是能夠以充分展現(xiàn)企業(yè)形象為主要目的,是企業(yè)文化與產(chǎn)品對外擴(kuò)展宣傳的重要窗口,一個(gè)合格的網(wǎng)站不僅僅能為公司帶來巨大的互聯(lián)網(wǎng)上的收集和信息發(fā)布平臺(tái),創(chuàng)新互聯(lián)面向各種領(lǐng)域:純水機(jī)等成都網(wǎng)站設(shè)計(jì)、全網(wǎng)整合營銷推廣解決方案、網(wǎng)站設(shè)計(jì)等建站排名服務(wù)。
前言:mysql的慢查詢?nèi)罩臼菙?shù)據(jù)庫調(diào)優(yōu)的一個(gè)主要依據(jù),但是跟蹤出來的文件是一個(gè)文本文件,查看起來費(fèi)時(shí)費(fèi)力,mysql也提供了一個(gè)工具便于從文本文件里面查找的工具mysqldumpslow。
Mysqldumpslow是安裝數(shù)據(jù)庫時(shí)會(huì)自帶的一個(gè)軟件,在目錄/usr/local/mysql/bin下面
[root@mysql01 data]# /usr/local/mysql/bin/mysqldumpslow --help Usage: mysqldumpslow [ OPTS... ] [ LOGS... ] Parse and summarize the MySQL slow query log. Options are --verbose verbose --debug debug --help write this text to standard output -vverbose -d debug -s ORDER what to sort by (al, at, ar, c, l, r, t), 'at' is default //表示排序的類型 al: average lock time //按平均鎖定時(shí)間排序 ar: average rows sent //平均獲取行數(shù)排序 at: average query time //平均查詢時(shí)間排序 c: count //執(zhí)行次數(shù) l: lock time //鎖定時(shí)間 r: rows sent //獲取行數(shù)排序 t: query time //查詢時(shí)間 -r reverse the sort order (largest last instead of first) //從小到大排序 -t NUM just show the top n queries //查詢結(jié)果的條目,后面跟數(shù)字 -a don't abstract all numbers to N and strings to 'S' -n NUM abstract numbers with at least n digits within names -g PATTERN grep: only consider stmts that include this string //包含特定的字符或字符串 -h HOSTNAME hostname of db server for *-slow.log filename (can be wildcard), default is '*', i.e. match all -i NAME name of server instance (if using mysql.server startup script) -l don't subtract lock time from total time |
[root@mysql01 data]# /usr/local/mysql/bin/mysqldumpslow -s c -t 10 /data/JOEONE-IPOSDS-01-slow.log
查看訪問次數(shù)最多的10個(gè)sql語句;
l [root@mysql01 data]# /usr/local/mysql/bin/mysqldumpslow -s r -t 10 /data/JOEONE-IPOSDS-01-slow.log
查看返回記錄集最多的10個(gè)sql語句
l [root@mysql01 data]# /usr/local/mysql/bin/mysqldumpslow -t 10 -s t -g "left join" /data/JOEONE-IPOSDS-01-slow.log
查看使用left join的語句
Count: 132 Time=4.21s (555s) Lock=0.00s (0s) Rows=0.4 (53), ipos[ipos]@3hosts 執(zhí)行次數(shù) 平均執(zhí)行時(shí)間/總共執(zhí)行時(shí)間 平均等待鎖時(shí)間/總等待鎖時(shí)間 平均獲取行數(shù)/總獲取行數(shù) 用戶 詳細(xì)的SQL語句 SELECT cus.zjhfrq,cus.zjrq,cus.headphoto,cus.sr1,cus.sr2,cus.vip,cus.xb,cus.Id,cus.gkdm,cus.gkmc,cus.sj,cus.dh,cus.dz,cus.bz,cus.scdh,cus.sy,cus.lylx,cus.cdbh,cus.jdrq,cus.zd_id,kh.khmc as zdmc, dj.khmc as djzdmc,cus.xfje,cus.dj_zd FROM ipos_customer cus LEFT JOIN com_base_kehu kh ON kh.Id=cus.zd_id LEFT JOIN com_base_kehu dj ON dj.Id=cus.dj_zd WHERE N=N and ( ((cus.zd_id='S'OR cus.dj_zd='S') and cus.vip=N) or ((cus.zd_id='S'OR cus.dj_zd='S') and cus.vip=N)) and cus.sj like 'S' and N=N and N=N order by cus.gkdm DESC LIMIT N |
初步感覺這個(gè)語句是可以優(yōu)化的;
總結(jié):今天又看了公司的數(shù)據(jù)庫通過慢查詢?nèi)罩景岩粭l運(yùn)行10S的語句優(yōu)化成0.1S的語句,心情倍感高興;但這只是萬里長征的第一步,畢竟當(dāng)一個(gè)數(shù)據(jù)庫運(yùn)行到領(lǐng)導(dǎo)要DBA來優(yōu)化的地步,說明已經(jīng)有很多的SQL語句有性能問題了,所以路還長著了。
到此,關(guān)于“MYSQL慢查詢?nèi)罩镜牟榭捶绞健钡膶W(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!