學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 電腦故障 > 電腦故障現(xiàn)象 > 系統(tǒng)變慢 >

MySQL Sending data導(dǎo)致查詢很慢問題怎么解決

時(shí)間: 加城1195 分享

  我們使用電腦和手機(jī)時(shí)候最不能忍受就是設(shè)備又卡又慢了,嚴(yán)重影響我們工作或者游戲體驗(yàn)。對于數(shù)據(jù)庫,有用戶遇到MySQL Sending data導(dǎo)致查詢很慢問題,怎么解決呢?這篇文章主要介紹了解決MySQL Sending data導(dǎo)致查詢很慢問題的方法與思路,感興趣的小伙伴們可以參考一下

  【問題現(xiàn)象】

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

  【處理過程】

  1)explain

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

  從explain的結(jié)果來看,整個(gè)語句的索引設(shè)計(jì)是沒有問題的,除了第一個(gè)表因?yàn)闃I(yè)務(wù)需要進(jìn)行整表掃描外,其它的表都是通過索引訪問

  2)show processlist;

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

  于是想到了使用 show processlist查看sql語句執(zhí)行狀態(tài),查詢結(jié)果如下:

  發(fā)現(xiàn)很長一段時(shí)間,查詢都處在 “Sending data”狀態(tài)

  查詢一下“Sending data”狀態(tài)的含義,原來這個(gè)狀態(tài)的名稱很具有誤導(dǎo)性,所謂的“Sending data”并不是單純的發(fā)送數(shù)據(jù),而是包括“收集 + 發(fā)送 數(shù)據(jù)”。

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

  3)show profile

  為了進(jìn)一步驗(yàn)證查詢的時(shí)間分布,于是使用了show profile命令來查看詳細(xì)的時(shí)間分布

  首先打開配置:set profiling=on;

  執(zhí)行完查詢后,使用show profiles查看query id;

  使用show profile for query query_id查看詳細(xì)信息;

  結(jié)果如下:

  從結(jié)果可以看出,Sending data的狀態(tài)執(zhí)行了216s

  4)排查對比

  經(jīng)過以上步驟,已經(jīng)確定查詢慢是因?yàn)榇罅康臅r(shí)間耗費(fèi)在了Sending data狀態(tài)上,結(jié)合Sending data的定義,將目標(biāo)聚焦在查詢語句的返回列上面

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

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

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

  補(bǔ)充:解決系統(tǒng)變慢的常用技巧方法

  1、在我的電腦窗口,右擊要清理的盤符―“屬性”―“清理磁盤”--勾選要?jiǎng)h除的文件--確定--是。

  2、右鍵瀏覽器e――屬性――點(diǎn)2個(gè)刪除1個(gè)清除(都要逐一確定)――確定 。

  3、把C:\WINDOWS\Prefetch(預(yù)讀文件)把里面的文件全部刪除

  4、用優(yōu)化大師或超級兔子清理注冊表和垃圾文件。

  5、“開始”――運(yùn)行中輸入msconfig――確定――啟動――除了輸入法ctfmon以外的勾全去掉。

  6、右鍵我的電腦”――屬性――點(diǎn)高級――點(diǎn)啟動和故障恢復(fù)中的設(shè)置――去掉所有的勾――寫入調(diào)試信息選擇“無”――確定――點(diǎn)高級下面錯(cuò)誤報(bào)告――點(diǎn)禁用――2次確定。

  7、“開始”..打開控制面板中的文件夾選項(xiàng)..點(diǎn)查看..點(diǎn)去末項(xiàng)自動搜索文件夾前面的勾..確定。

  8、右鍵我的電腦――屬性――硬件――設(shè)備管理器――雙擊IDE控制器――次要通道――高級設(shè)置――傳送模式都選DMA――設(shè)備類型選無――確定――主要通道也同樣設(shè)置――確定。

  9、右鍵C盤進(jìn)行磁盤清理和其它選項(xiàng)中的系統(tǒng)還原清理。

  10、刪除不用的程序軟件。


查詢很慢問題怎么解決相關(guān)文章:

1.ppt2013實(shí)用技巧怎么解決ppt保存速度慢的問題

2.DNS解析故障及修復(fù)方法

3.wifi為什么網(wǎng)速慢

4.無線wifi網(wǎng)速很慢怎么解決

5.上網(wǎng)慢怎么檢查DNS設(shè)置 上網(wǎng)慢檢查DNS設(shè)置的方法

4036063