




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
對(duì)于當(dāng)前數(shù)據(jù)庫(kù)的監(jiān)控方式有很多,分為數(shù)據(jù)庫(kù)自帶、商用、開(kāi)源三大類,每一種都有各自的特色;而對(duì)于
MySQL
數(shù)據(jù)庫(kù)由于其有很高的社區(qū)活躍度,監(jiān)控方式更是多種多樣,不管哪種監(jiān)控方式最核心的就是監(jiān)控?cái)?shù)據(jù),獲取得到全面的監(jiān)控?cái)?shù)據(jù)后就是靈活的展示部分。那我們今天就介紹一下完全采用MySQL自有方式采集獲取監(jiān)控?cái)?shù)據(jù),在單體下達(dá)到最快速、方便、損耗最小。本次文章完全使用MySQL自帶的show命令實(shí)現(xiàn)獲取,從connects、buffercache、lock、SQL、statement、Databasethroughputs、serverconfig7大方面全面獲取監(jiān)控?cái)?shù)據(jù)。1連接數(shù)(Connects)最大使用連接數(shù):showstatuslike‘Max_used_connections’當(dāng)前打開(kāi)的連接數(shù):showstatuslike‘Threads_connected’2緩存(bufferCache)未從緩沖池讀取的次數(shù):showstatuslike‘Innodb_buffer_pool_reads’從緩沖池讀取的次數(shù):showstatuslike‘Innodb_buffer_pool_read_requests’緩沖池的總頁(yè)數(shù):showstatuslike‘Innodb_buffer_pool_pages_total’緩沖池空閑的頁(yè)數(shù):showstatuslike‘Innodb_buffer_pool_pages_free’緩存命中率計(jì)算:(1-Innodb_buffer_pool_reads/Innodb_buffer_pool_read_requests)*100%緩存池使用率為:((Innodb_buffer_pool_pages_total-Innodb_buffer_pool_pages_free)/Innodb_buffer_pool_pages_total)*100%3鎖(lock)鎖等待個(gè)數(shù):showstatuslike‘Innodb_row_lock_waits’平均每次鎖等待時(shí)間:showstatuslike‘Innodb_row_lock_time_avg’查看是否存在表鎖:showopenTABLESwherein_use>0;有數(shù)據(jù)代表存在鎖表,空為無(wú)表鎖備注:鎖等待統(tǒng)計(jì)得數(shù)量為累加數(shù)據(jù),每次獲取得時(shí)候可以跟之前得數(shù)據(jù)進(jìn)行相減,得到當(dāng)前統(tǒng)計(jì)得數(shù)據(jù)4SQL查看mysql開(kāi)關(guān)是否打開(kāi):showvariableslike‘slow_query_log’,ON為開(kāi)啟狀態(tài),如果為OFF,setglobalslow_query_log=1進(jìn)行開(kāi)啟查看mysql閾值:showvariableslike‘long_query_time’,根據(jù)頁(yè)面?zhèn)鬟f閾值參數(shù),修改閾值setgloballong_query_time=0.1查看mysql慢sql目錄:showvariableslike‘slow_query_log_file’格式化慢sql日志:mysqldumpslow-sat-t10/export/data/mysql/log/slow.log注:此語(yǔ)句通過(guò)jdbc執(zhí)行不了,屬于命令行執(zhí)行。意思為:顯示出耗時(shí)最長(zhǎng)的10個(gè)SQL語(yǔ)句執(zhí)行信息,10可以修改為TOP個(gè)數(shù)。顯示的信息為:執(zhí)行次數(shù)、平均執(zhí)行時(shí)間、SQL語(yǔ)句備注:當(dāng)mysqldumpslow命令執(zhí)行失敗時(shí),將慢日志同步到本地進(jìn)行格式化處理。5statementinsert數(shù)量:showstatuslike‘Com_insert’delete數(shù)量:showstatuslike‘Com_delete’update數(shù)量:showstatuslike‘Com_update’select數(shù)量:showstatuslike‘Com_select’6吞吐(Databasethroughputs)發(fā)送吞吐量:showstatuslike‘Bytes_sent’接收吞吐量:showstatuslike‘Bytes_received’總吞吐量:Bytes_sent+Bytes_received7數(shù)據(jù)庫(kù)參數(shù)(serverconfig)showvariables8慢SQL慢SQL指的是MySQL慢查詢,具體指運(yùn)行時(shí)間超過(guò)long_query_time值的SQL。我們常聽(tīng)MySQL中有二進(jìn)制日志binlog、中繼日志relaylog、重做回滾日志redolog、undolog等。針對(duì)慢查詢,還有一種慢查詢?nèi)罩緎lowlog,用來(lái)記錄在MySQL中響應(yīng)時(shí)間超過(guò)閥值的語(yǔ)句。慢SQL對(duì)實(shí)際生產(chǎn)業(yè)務(wù)影響是致命的,所以測(cè)試人員在性能測(cè)試過(guò)程中,對(duì)數(shù)據(jù)庫(kù)SQL語(yǔ)句執(zhí)行情況實(shí)施監(jiān)控,給開(kāi)發(fā)提供準(zhǔn)確的性能優(yōu)化意見(jiàn)顯得尤為重要。那怎么使用Mysql數(shù)據(jù)庫(kù)提供的慢查詢?nèi)罩緛?lái)監(jiān)控SQL語(yǔ)句執(zhí)行情況,找到消耗較高的SQL語(yǔ)句,以下詳細(xì)說(shuō)明一下慢查詢?nèi)罩镜氖褂貌襟E:確保打開(kāi)慢SQL開(kāi)關(guān)slow_query_log設(shè)置慢SQL域值long_query_time這個(gè)long_query_time是用來(lái)定義慢于多少秒的才算“慢查詢”,注意單位是秒,我通過(guò)執(zhí)行sql指令setlong_query_time=1來(lái)設(shè)置了long_query_time的值為1,也就是執(zhí)行時(shí)間超過(guò)1秒的都算慢查詢,如下:查看慢SQL日志路徑通過(guò)慢sql分析工具mysqldumpslow格式化分析慢SQL日志mysqldumpslow慢查詢分析工具,是mysql安裝后自帶的,可以通過(guò)./mysqldumpslow—help查看使用參數(shù)說(shuō)明常見(jiàn)用法:取出使用最多的10條慢查詢./mysqldumpslow-sc-t10/export/data/mysql/log/slow.log取出查詢時(shí)間最慢的3條慢查詢./mysqldumpslow-st-t3/export/data/mysql/log/slow.log注意:使用mysqldumpslow的分析結(jié)果不會(huì)顯示具體完整的sql語(yǔ)句,只會(huì)顯示sql的組成結(jié)構(gòu);假如:SELECTFROMsms_sendWHEREservice_id=10GROUPBYcontentLIMIT0,1000;mysqldumpslow命令執(zhí)行后顯示:Count:2Time=1.5s(3s)Lock=0.00s(0s)Rows=1000.0(2000),vgos_dba[vgos_dba]@[10.130.229.196]SELECTFROMsms_sendWHEREservice_id=NGROUPBYcontentLIMITN,Nmysqldumpslow的分析結(jié)果詳解:Count:表示該類型的語(yǔ)句執(zhí)行次數(shù),上圖中表示select語(yǔ)句執(zhí)行了2次。Time:表示該類型的語(yǔ)句執(zhí)行的平均時(shí)間(總計(jì)時(shí)間)Lock:鎖時(shí)間0s。Rows:?jiǎn)未畏祷氐慕Y(jié)果數(shù)是1000條記錄,2次總共返回2000條記錄。通過(guò)這個(gè)工具就可以查詢出來(lái)哪些sql語(yǔ)句是慢SQL,從而反饋研發(fā)進(jìn)行優(yōu)化,比如加索引,該應(yīng)用的實(shí)現(xiàn)方式等。常見(jiàn)慢SQL排查不使用子查詢SELECTFROMt1WHEREid(SELECTidFROMt2WHEREname=’hechunyang’);子查詢?cè)贛ySQL5.5版本里,內(nèi)部執(zhí)行計(jì)劃器是這樣執(zhí)行的:先查外表再匹配內(nèi)表,而不是先查內(nèi)表t2,當(dāng)外表的數(shù)據(jù)很大時(shí),查詢速度會(huì)非常慢。在MariaDB10/MySQL5.6版本里,采用join關(guān)聯(lián)方式對(duì)其進(jìn)行了優(yōu)化,這條SQL會(huì)自動(dòng)轉(zhuǎn)換為SELECTt1.FROMt1JOINt2ONt1.id=t2.id;但請(qǐng)注意的是:優(yōu)化只針對(duì)SELECT有效,對(duì)UPDATE/DELETE子查詢無(wú)效,生產(chǎn)環(huán)境盡量應(yīng)避免使用子查詢。避免函數(shù)索引SELECTFROMtWHEREYEAR(d)>=2016;由于MySQL不像Oracle那樣?持函數(shù)索引,即使d字段有索引,也會(huì)直接全表掃描。應(yīng)改為>SELECTFROMtWHEREd>=‘2016-01-01’;用IN來(lái)替換OR低效查詢慢SELECTFROMtWHERELOC_ID=10ORLOC_ID=20ORLOC_ID=30;高效查詢>SELECTFROMtWHERELOC_ININ(10,20,30);LIKE雙百分號(hào)無(wú)法使用到索引SELECTFROMtWHEREnameLIKE‘%de%’;使用SELECTFROMtWHEREnameLIKE‘de%’;分組統(tǒng)計(jì)可以禁止排序SELECTgoods_id,count()FROMtGROUPBYgoods_id;默認(rèn)情況下,MySQL對(duì)所有GROUPBYcol1,col2…的字段進(jìn)?排序。如果查詢包括GROUPBY,想要避免排序結(jié)果的消耗,則可以指定ORDERBYNULL禁止排序。使用SELECTgoods_id,count()FROMtGROUPBYgoods_idORDERBYNULL;禁止不必要的ORDERBY排序SELECTcount(1)FROMuseruLEFTJOINuser_infoiONu.id=i.user_idWHERE1=1ORDERBYu.create_timeDESC;使用SELECTcount(1)FROMuseruLEFTJOINuser_infoiONu.id=i.user_id;9總結(jié)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 山東省德州市齊河縣2024-2025學(xué)年八年級(jí)上學(xué)期期末生物學(xué)試題(含答案)
- 客戶溝通與反饋記錄
- 小王子遇見(jiàn)世界的觀后感
- 高中化學(xué)實(shí)驗(yàn)設(shè)計(jì)與探究:化學(xué)反應(yīng)原理教案
- 《初高中英語(yǔ)語(yǔ)法比較與辨析教案》
- 不動(dòng)產(chǎn)交易買賣協(xié)議書
- 中學(xué)生歷史事件故事讀后感
- 美容師儀器知識(shí)培訓(xùn)課件
- 血液++課件-2024-2025學(xué)年北師大版生物七年級(jí)下冊(cè)
- 紅色故事鐵道游擊隊(duì)的愛(ài)國(guó)主義教育解讀
- 2025年亳州職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)完整
- 2024年廣東省中考數(shù)學(xué)試卷(附答案)
- 2025年高考時(shí)政考題及參考答案(100題)
- DeepSeek人工智能語(yǔ)言模型探索AI世界科普課件
- 《青春期心理健康指導(dǎo)》課件
- 第18講 等腰三角形 課件中考數(shù)學(xué)復(fù)習(xí)
- 全過(guò)程工程咨詢文件管理標(biāo)準(zhǔn)
- 《預(yù)制高強(qiáng)混凝土風(fēng)電塔筒生產(chǎn)技術(shù)規(guī)程》文本附編制說(shuō)明
- 四川省建筑行業(yè)調(diào)研報(bào)告
- 2025湖北省煙草專賣局(公司)招聘200人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年山東省青島市技師學(xué)院公開(kāi)招聘工作人員35名歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
評(píng)論
0/150
提交評(píng)論