亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

解決MySQL Sending data導致查詢很慢問題的方法與思路

2024-07-24 13:09:13
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了解決database/mysql/44948.html">MySQL database/mysql/15928.html">Sending data導致查詢很慢問題的方法與思路,感興趣的小伙伴們可以參考一下
 

最近幫忙定位一個mysql查詢很慢的問題,定位過程綜合各種方法、理論、工具,很有代表性,分享給大家。

【問題現象】

使用sphinx支持倒排索引,但sphinx從mysql查詢源數據的時候,查詢的記錄數才幾萬條,但查詢的速度非常慢,大概要4~5分鐘左右

【處理過程】

1)explain

首先懷疑索引沒有建好,于是使用explain查看查詢計劃,結果如下:

MySQL,Sending,data,查詢很慢

從explain的結果來看,整個語句的索引設計是沒有問題的,除了第一個表因為業務需要進行整表掃描外,其它的表都是通過索引訪問

2)show processlist;

explain看不出問題,那到底慢在哪里呢?

于是想到了使用 show processlist查看sql語句執行狀態,查詢結果如下:

MySQL,Sending,data,查詢很慢

發現很長一段時間,查詢都處在 “Sending data”狀態

查詢一下“Sending data”狀態的含義,原來這個狀態的名稱很具有誤導性,所謂的“Sending data”并不是單純的發送數據,而是包括“收集 + 發送 數據”。

這里的關鍵是為什么要收集數據,原因在于:mysql使用“索引”完成查詢結束后,mysql得到了一堆的行id,如果有的列并不在索引中,mysql需要重新到“數據行”上將需要返回的數據讀取出來返回個客戶端。

3)show profile

為了進一步驗證查詢的時間分布,于是使用了show profile命令來查看詳細的時間分布

首先打開配置:set profiling=on;
執行完查詢后,使用show profiles查看query id;
使用show profile for query query_id查看詳細信息;

結果如下:

MySQL,Sending,data,查詢很慢

從結果可以看出,Sending data的狀態執行了216s

4)排查對比

經過以上步驟,已經確定查詢慢是因為大量的時間耗費在了Sending data狀態上,結合Sending data的定義,將目標聚焦在查詢語句的返回列上面

經過一 一排查,最后定為到一個description的列上,這個列的設計為:`description`varchar(8000) DEFAULT NULL COMMENT '游戲描述',

于是采取了對比的方法,看看“不返回description的結果”如何。show profile的結果如下:

MySQL,Sending,data,查詢很慢

可以看出,不返回description的時候,查詢時間只需要15s,返回的時候,需要216s,兩者相差15倍

【原理研究】

至此問題已經明確,但原理上我們還需要繼續探究。

這篇淘寶的文章很好的解釋了相關原理:innodb使用大字段text,blob的一些優化建議

這里的關鍵信息是:當Innodb的存儲格式是 ROW_FORMAT=COMPACT (or ROW_FORMAT=REDUNDANT)的時候,Innodb只會存儲前768字節的長度,剩余的數據存放到“溢出頁”中。

我們使用show table status來查看表的相關信息:

MySQL,Sending,data,查詢很慢

可以看到,平均一行大約1.5K,也就說大約1/10行會使用“溢出存儲”,一旦采用了這種方式存儲,返回數據的時候本來是順序讀取的數據,就變成了隨機讀取了,所以導致性能急劇下降。

另外,在測試過程中還發現,無論這條語句執行多少次,甚至將整個表select *幾次,語句的執行速度都沒有明顯變化。這個表的數據和索引加起來才150M左右,而整個Innodb buffer pool有5G,緩存整張表綽綽有余,如果緩存了溢出頁,性能應該大幅提高才對。

但實測結果卻并沒有提高,因此從這個測試可以推論Innodb并沒有將溢出頁(overflow page)緩存到內存里面。

這樣的設計也是符合邏輯的,因為overflow page本來就是存放大數據的,如果也放在緩存里面,就會出現一次大數據列(blob、text、varchar)查詢,可能就將所有的緩存都更新了,這樣會導致其它普通的查詢性能急劇下降。

【解決方法】

找到了問題的根本原因,解決方法也就不難了。有幾種方法:

1)查詢時去掉description的查詢,但這受限于業務的實現,可能需要業務做較大調整

2)表結構優化,將descripion拆分到另外的表,這個改動較大,需要已有業務配合修改,且如果業務還是要繼續查詢這個description的信息,則優化后的性能也不會有很大提升。

以上就是本文的全部內容,希望對大家的學習有所幫助。



注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲人成绝费网站色www| 日韩在线一区二区三区免费视频| 久久国产精品99国产精| 欧美性生交xxxxxdddd| 欧美专区日韩视频| 欧美日韩中文字幕在线视频| 国内久久久精品| 日韩在线中文字幕| 成人免费在线视频网站| 日韩中文字幕在线| 色婷婷综合久久久久中文字幕1| 欧美日韩中国免费专区在线看| 亚洲在线第一页| 91免费电影网站| 国产精品影院在线观看| 国产精品高清在线观看| 亚洲精品视频免费在线观看| 国产做受高潮69| 日韩av黄色在线观看| 日本一区二区三区四区视频| 91精品国产综合久久久久久久久| 高跟丝袜一区二区三区| 在线观看日韩www视频免费| www.亚洲男人天堂| 成人女保姆的销魂服务| 亚洲精品中文字幕av| 国产日韩av在线播放| 久热爱精品视频线路一| 亚洲成人在线视频播放| 亚洲国产精品久久| 欧美激情视频一区二区三区不卡| 亚洲色图色老头| 欧美乱大交xxxxx另类电影| 久久国产一区二区三区| 欧美日韩一区二区三区| 亚洲国内精品在线| 一区二区三区视频免费| 最近2019中文字幕第三页视频| 国产日韩欧美中文| 另类视频在线观看| 久久久久久久久国产精品| 97视频在线观看亚洲| 国产精品亚洲一区二区三区| 国产剧情久久久久久| 91国产精品电影| 狠狠躁夜夜躁人人爽天天天天97| 国产日本欧美一区二区三区| 欧美伊久线香蕉线新在线| 欧美成人在线网站| 韩国v欧美v日本v亚洲| 国产成人中文字幕| 欧美日韩在线视频一区二区| 日韩福利视频在线观看| 人妖精品videosex性欧美| 成人免费视频xnxx.com| 欧美精品电影在线| 91沈先生在线观看| 欧美国产欧美亚洲国产日韩mv天天看完整| 成人免费网站在线观看| 懂色av影视一区二区三区| 欧美性生交xxxxx久久久| 成人国产亚洲精品a区天堂华泰| 国产精品美女在线| 国产剧情日韩欧美| 一区二区成人av| 一本色道久久88综合亚洲精品ⅰ| 4438全国亚洲精品在线观看视频| 亚洲国产三级网| 一区二区成人av| 草民午夜欧美限制a级福利片| 久久亚洲精品小早川怜子66| 91欧美精品午夜性色福利在线| 欧美成年人在线观看| 久久久久久久999精品视频| 中文字幕精品在线| 精品国产欧美一区二区三区成人| 热久久免费国产视频| 蜜臀久久99精品久久久无需会员| 国产黑人绿帽在线第一区| 97人人爽人人喊人人模波多| 精品动漫一区二区| 日韩免费电影在线观看| 亚洲视频在线观看网站| 在线观看中文字幕亚洲| 视频在线一区二区| 成人精品视频99在线观看免费| 精品亚洲一区二区三区四区五区| 久久久久久九九九| 日韩av网站导航| 在线亚洲欧美视频| 欧美日韩国产综合视频在线观看中文| 日韩精品视频免费专区在线播放| 91wwwcom在线观看| 国产91九色视频| 欧美电影在线观看| 中文字幕日韩专区| 自拍视频国产精品| 国产美女被下药99| 中文字幕日韩av综合精品| 亚洲精品欧美极品| 日韩免费在线视频| 国产精品女人网站| 久久久久日韩精品久久久男男| 精品久久久久久亚洲国产300| 成人久久精品视频| 97色在线视频观看| 欧美日韩美女在线观看| 青草热久免费精品视频| 国产精品99久久久久久久久| 777国产偷窥盗摄精品视频| 国产小视频国产精品| 91精品在线看| 国产成人jvid在线播放| 国产精品无av码在线观看| 日本一区二区三区四区视频| 欧美性猛交xxxxx免费看| 久久久精品视频在线观看| 国产欧美精品一区二区| 亚洲欧洲视频在线| 欧美激情视频网站| 国产日韩欧美自拍| 国产精品久久久久久亚洲影视| 在线观看久久久久久| 日本一欧美一欧美一亚洲视频| 中文字幕日韩av综合精品| 精品国产欧美一区二区五十路| 国产精品揄拍一区二区| 国产91在线视频| 欧美精品videofree1080p| 国产日韩欧美视频在线| 在线日韩精品视频| 日韩精品免费在线视频观看| xvideos亚洲| 亚洲人午夜精品| 亚洲国产成人精品一区二区| 日韩欧美在线第一页| 成人444kkkk在线观看| 亚洲第一精品夜夜躁人人躁| 亚洲国产精品视频在线观看| 欧美xxxwww| 欧美性猛交xxxx免费看久久久| 欧美一级黑人aaaaaaa做受| 亚洲精品自在久久| 亚洲男人的天堂网站| 亚洲毛片在线观看.| 国内精品一区二区三区| 2021久久精品国产99国产精品| 久久久999精品免费| 91免费综合在线| 精品无人区乱码1区2区3区在线| 91综合免费在线| 亚洲欧美日韩一区二区三区在线| 国产免费亚洲高清| 日韩在线视频二区| 国产欧美一区二区三区视频| 国产区精品视频| 亚洲japanese制服美女| 久久久久久久久久久久av| 最近2019中文字幕第三页视频| 久久久久久久久久国产| 国产日本欧美一区二区三区| 日韩欧美高清在线视频| 青青草原成人在线视频| 国产精品pans私拍|