校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > MySQL 查詢速度慢的原因

MySQL 查詢速度慢的原因

熱門標簽:大豐地圖標注app 400電話變更申請 400電話辦理服務價格最實惠 催天下外呼系統 呂梁外呼系統 html地圖標注并導航 武漢電銷機器人電話 南太平洋地圖標注 北京金倫外呼系統

談到MySQL性能優化,查詢優化作為優化的源頭,它也是最能體現一個系統是否更快。本章以及接下來的幾章將會著重講解關于查詢性能優化的內容,從中會介紹一些查詢優化的技巧,幫助大家更深刻地理解MySQL如何真正地執行查詢、究竟慢在哪里、如何讓其快起來,并明白高效和低效的原因何在,這樣更有助于你更好的來優化查詢SQL語句。

本章從“為什么查詢速度這么慢”開始談起,讓你能夠清楚的知道查詢可能會慢在哪些環節,這樣將有助于你更好的優化查詢,做到心中有數,高人一籌。

一、慢在哪?

**真正衡量查詢速度的是響應時間。**如果把查詢看作是一個任務,那么它是由一系列子任務組成的,每個任務都會消耗一定的時間。如果要優化查詢,實際上要優化其子任務,那么消除其中一些子任務,那么減少子任務的執行次數,要么讓子任務運行的更快。

MySQL在執行查詢的時候,有哪些子任務,哪些子任務花費的時間最多?這就需要借助一些工具,或者一些方法(如:執行計劃)對查詢進行剖析,來定位發現究竟慢在哪。

通常來說,查詢的生命周期大致大致可以按照順序來看:**從客戶端到服務器,然后在服務器上進行解析,生成執行計劃,執行,并返回結果給客戶端。**其中,“執行”可以認為是整個生命周期中最重要的階段,這其中包括了大量為了檢索數據到存儲引擎的調用以及調用后的數據處理,包括排序、分組等。

在完成這些任務的時候,查詢需要在不同階段的不同地方花費時間,包括網絡、CPU計算,生成統計信息和執行計劃、鎖等待等操作,尤其是向底層存儲引擎檢索數據的調用操作,這些調用需要在內存操作、CPU操作,還可能會產生大量的上下文切換以及系統調用。

在上述這些操作中,都會消耗大量的時間,其中會存在一些不必要的額外操作,其中有些操作可能被額外地重復執行了很多次、某些操作執行的很慢等等。這也就是查詢真正可能慢的地方,優化查詢的目的就是減少和消除這些操作所花費的時間。

通過上面的分析,我們對查詢的過程有了整體的了解,能夠清楚的知道查詢可能在哪些地方會存在問題,最終導致整個查詢很慢,為實際查詢優化提供方向。

換言之,查詢優化可以從以下兩個角度來出發:

  • 減少子查詢次數
  • 減少額外、重復的操作

查詢性能低下常見的原因是訪問的數據太多。在數據量小的時候,查詢速度還不錯,一旦數據量上來,查詢速度將會發生巨變,讓人抓狂、體驗極差。針對查詢優化方面,可以從以下方面進行排查:

  • 是否查詢了不需要的數據
  • 是否掃描了額外的記錄

二、是否查詢了不需要的數據

在實際查詢中很多時候,會查詢了實際需要的數據,然后這些多余的數據會被應用程序丟棄。這對MySQL來說是額外的開銷,同時也會消耗應用服務器的CPU和內存資源。

一些典型案例如下:

1. 查詢不需要的記錄

這是一個常見的錯誤,常常會誤以為MySQL只會返回需要的數據,實際上MySQL卻是先返回全部結果集再進行計算。

開發者習慣性的先使用SELECT語句查詢大量的結果,然后由應用查詢或者前端展示層再獲取前面的N行數據,例如,在新聞網站中查詢100條記錄,但是只是在頁面上顯示前10條。

最有效的解決方法是需要多少記錄就查詢多少記錄,通常會在查詢后面加上LIMIT,即:分頁查詢。

2. 多表關聯時返回全部列

如果你想查詢所有在電影Academy Dinosaur中出現的演員,千萬不要按下面的方式來進行查詢:

select * fromt actor a
inner join film_actor fa.actorId = a.actorId
inner join film f f.filmId = fa.filmId
where fa.title = 'Academy Dinosaur';

這樣將會返回三張表的全部數據列,而實際需求是要查詢演員信息,正確的寫法應該是:

select a.* fromt actor a
inner join film_actor fa.actorId = a.actorId
inner join film f f.filmId = fa.filmId
where fa.title = 'Academy Dinosaur';

3. 總是查詢出全部列

每次看到select *的時候一定要用異樣的目光來審視它,是不是真的需要返回全部數據列?

在大部分情況下,是不需要的。select *會導致進行全表掃描,會讓優化器無法完成索引掃描這類優化,過多的列還會為服務器帶來額外的I/O、內存和CPU的消耗。即使真的需要查詢出全部列,應該逐個羅列出全部列而不是*。

4. 重復查詢相同的數據

如果你不太留意,很容易出現這樣的錯誤:不斷地重復執行相同的查詢,然后每次都返回完全相同的數據。

例如,在用戶評論的地方需要查詢用戶頭像的URL,那么用戶多次評論的時候,可能就會反復來查詢這個數據。比較好處理方法是,在初次查詢的時候將這個數據緩存起來,后續使用時直接從緩存中取出。

三、是否掃描了額外的記錄

確定查詢只查詢了需要的數據以后,接下來應該看看查詢過程中是否掃描了過多的數據。對于MySQL,最簡單衡量查詢開銷的三個指標如下:

  • 響應時間
  • 掃描的行數
  • 返回的行數

沒有哪個指標能夠完全來衡量查詢的開銷,但它們能夠大致反映MySQL內部執行查詢時需要訪問多少數據,并可以大概推算出查詢運行的實際。這三個指標都會記錄到MySQL的慢日志中,所以檢查慢日志記錄是找出掃描行數過多查詢的辦法。

慢查詢:用于記錄在MySQL中響應時間超過閾值(long_query_time,默認10s)的語句,并會將慢查詢記錄到慢日志中。可通過變量slow_query_long來開啟慢查詢,默認是關閉狀態,可以將慢日志記錄到表slow_log或文件中,以供檢查分析。

1. 響應時間

響應時間是兩個部分之和:服務時間和排隊時間。服務時間是指數據庫處理這個查詢真正花費了多長時間。排隊時間是指服務器因為等待某些資源而沒有真正執行查詢的時間,可能是等待I/O操作,也可能是等待行鎖等等。

在不同類型的應用壓力下,響應時間并沒有什么一致的規律或者公式。諸如存儲引擎的鎖(表鎖,行鎖),高并發資源競爭,硬件響應等諸多因素都會影響響應時間,所以,響應時間既可能是一個問題的結果也可能是一個問題的原因,不同案例情況不同。

當你看到一個查詢的響應時間的時候,首先需要問問自己,這個響應時間是否是一個合理的值。

2. 掃描的行數和返回的行數

在分析查詢時,查看該查詢掃描的行數是非常有幫助的,在此之上也能夠分析是否掃描了額外的記錄。

對于找出那些糟糕查詢,這個指標可能還不夠完美,因為并不是所有行的訪問代價都是相同的。較短的行的訪問速度相當快,內存中的行也比磁盤中的行的訪問速度要快的多。

**理想的情況下,掃描的行數和返回的行數應該是相同的。**但實際上這種美事并不多,例如在做一個關聯查詢的時候,掃描的行數和對返回的行數的比率通常都很小,一般在1:1和10:1之間,不過有時候這個值也可能非常大。

3. 掃描的行數和訪問類型

在評估查詢開銷的時候,需要考慮一下從表中找到某一行數據的成本。MySQL有好幾種訪問方式可以查找并返回一行結果。這些訪問方式可能需要訪問很多行才能返回一條結果,也有些訪問方式可能無需掃描就能返回結果。

在執行計劃EXPLAIN語句中的type列反映了訪問類型。訪問類型有很多種,從全表掃描到索引掃描,范圍掃描,唯一索引,常數索引等。這里列的這些,速度是從慢到快,掃描的行數也是從多到少。

如果查詢沒有辦法找到合適的訪問類型,那么解決的最好辦法通常就是增加一個合適的索引,這也是我們之前討論索引的問題。現在應該明白為什么索引對于查詢優化如此重要了。索引讓MySQL以最高效,掃描行數最少的方式找到需要的記錄。

如果發現查詢掃描了大量的數據但只返回少數的行,通常可以嘗試下面的技巧去優化它:

  • 使用索引覆蓋掃描,把所有需要用的列都放到索引中,這樣存儲引擎無需回表獲取對應的行就可以返回結果了。
  • 優化表結構。例如使用單獨的匯總表來完成查詢。
  • 重寫復雜查詢,讓MySQL優化器能夠以更優化的方式執行這個查詢。

以上就是MySQL 查詢速度慢的原因的詳細內容,更多關于MySQL 查詢速度慢的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • MySQL Like模糊查詢速度太慢如何解決
  • MySQL 查詢速度慢與性能差的原因與解決方法
  • mysql千萬級數據量根據索引優化查詢速度的實現
  • MySql索引提高查詢速度常用方法代碼示例
  • MySQL如何優化查詢速度
  • MySQL全文索引、聯合索引、like查詢、json查詢速度哪個快
  • mysql處理海量數據時的一些優化查詢速度方法
  • 如何提高MYSQL數據庫的查詢統計速度 select 索引應用

標簽:徐州 自貢 南充 龍巖 麗水 迪慶 無錫 西寧

巨人網絡通訊聲明:本文標題《MySQL 查詢速度慢的原因》,本文關鍵詞  MySQL,查詢,速度慢,的,原因,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL 查詢速度慢的原因》相關的同類信息!
  • 本頁收集關于MySQL 查詢速度慢的原因的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    制服丝袜亚洲色图| 亚洲国产欧美在线人成| 精品一区二区三区在线观看国产| 欧美日韩午夜在线视频| 1区2区3区精品视频| 99精品欧美一区二区蜜桃免费 | 欧美r级电影在线观看| 蜜桃一区二区三区四区| 久久在线观看免费| 国产精品18久久久久久久久 | 欧美视频一区二区三区| 亚洲成人动漫精品| 欧美一级生活片| 国产suv精品一区二区6| **网站欧美大片在线观看| 日本二三区不卡| 久久综合综合久久综合| 国产精品私房写真福利视频| 欧美伊人久久久久久午夜久久久久| 亚洲成av人片www| 2021久久国产精品不只是精品| 成人小视频在线| 亚洲mv大片欧洲mv大片精品| 337p日本欧洲亚洲大胆色噜噜| 成人av小说网| 全部av―极品视觉盛宴亚洲| 国产日韩欧美a| 欧美久久久久中文字幕| 国产成人午夜片在线观看高清观看| 亚洲精品乱码久久久久久日本蜜臀| 欧美久久久久免费| 色综合中文字幕国产| 亚洲综合视频在线| 国产亚洲成aⅴ人片在线观看| 色婷婷精品大视频在线蜜桃视频| 久久精品国产99久久6| 亚洲三级在线免费| 久久综合色综合88| 欧美日韩www| 成人黄色av电影| 久久国产日韩欧美精品| 亚洲伊人伊色伊影伊综合网| 久久久精品一品道一区| 欧美视频中文一区二区三区在线观看| 精品一区二区久久| 亚洲综合清纯丝袜自拍| 欧美韩国日本不卡| 日韩午夜激情视频| 欧美性猛交xxxxxxxx| 国产精品888| 五月综合激情网| 亚洲人精品午夜| 国产午夜一区二区三区| 精品入口麻豆88视频| 欧美性视频一区二区三区| 色94色欧美sute亚洲线路一ni| 免费久久精品视频| 亚洲综合丝袜美腿| 亚洲男帅同性gay1069| 国产精品乱人伦中文| ww亚洲ww在线观看国产| 欧美一区二区在线免费观看| 欧美性xxxxxx少妇| 日本道精品一区二区三区| 风间由美一区二区三区在线观看| 麻豆免费精品视频| 日本不卡不码高清免费观看| 亚洲午夜激情网站| 亚洲一级在线观看| 亚洲国产精品久久一线不卡| 日韩理论片在线| 亚洲人妖av一区二区| 国产精品久线在线观看| 久久久久9999亚洲精品| 日韩免费一区二区| 欧美电影免费提供在线观看| 欧美一区二区精品久久911| 在线成人av网站| 日韩一区和二区| 日韩一区二区视频在线观看| 欧美一区二区三区在线看| 91精品国产欧美一区二区18| 日韩欧美国产一二三区| 精品国产网站在线观看| 久久综合色鬼综合色| 久久精品欧美日韩| 最新高清无码专区| 亚洲欧美中日韩| 一区二区三区蜜桃网| 午夜欧美电影在线观看| 青青草原综合久久大伊人精品| 午夜不卡在线视频| 久久精品99国产国产精| 国产馆精品极品| 99久久er热在这里只有精品15| 色综合夜色一区| 欧美亚洲综合另类| 日韩欧美国产系列| 国产欧美一二三区| 亚洲欧美日韩国产一区二区三区 | 91福利区一区二区三区| 欧美日韩国产一二三| 欧美一卡二卡在线观看| 国产午夜精品一区二区三区四区| 中文字幕第一区综合| 亚洲影院理伦片| 国产伦精品一区二区三区免费| 国产电影一区二区三区| av一区二区不卡| 911国产精品| 久久久综合精品| 成人欧美一区二区三区| 国产精品久久久久aaaa樱花| 一区二区三区不卡视频| 久久www免费人成看片高清| 波多野结衣在线aⅴ中文字幕不卡 波多野结衣在线一区 | 精品日韩在线观看| 亚洲你懂的在线视频| 狠狠狠色丁香婷婷综合激情 | 一本色道久久加勒比精品| 欧美日韩大陆在线| 国产欧美日韩在线看| 亚洲va韩国va欧美va精品| 高清不卡一区二区| 制服.丝袜.亚洲.中文.综合| 国产精品免费视频一区| 日韩成人一区二区| 色视频成人在线观看免| 久久久国际精品| 日本不卡视频在线| 日本精品一级二级| 国产日韩精品一区二区三区| 亚洲五码中文字幕| 久久久av毛片精品| 成人天堂资源www在线| 国产亚洲女人久久久久毛片| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 成人99免费视频| 国产三级欧美三级| 亚洲va天堂va国产va久| 丁香六月久久综合狠狠色| 日韩视频不卡中文| 亚洲成av人**亚洲成av**| 波多野结衣欧美| 久久婷婷国产综合国色天香| 偷窥少妇高潮呻吟av久久免费| av一区二区不卡| 国产精品三级av在线播放| 九色porny丨国产精品| 欧美日韩亚洲综合一区| 亚洲视频在线观看一区| 国产成人亚洲精品青草天美| wwww国产精品欧美| 久久精品国产亚洲高清剧情介绍| 欧美优质美女网站| 一区二区三区在线影院| www.一区二区| 国产精品伦理一区二区| 色综合久久久网| 成人欧美一区二区三区在线播放| 国产精品一二三区在线| 久久先锋影音av| 黄色资源网久久资源365| 日韩欧美在线不卡| 日本一区中文字幕| 欧美日韩国产在线播放网站| 亚洲444eee在线观看| 欧美三级视频在线| 五月综合激情网| 91精品麻豆日日躁夜夜躁| 日本成人在线电影网| 91精品国产91综合久久蜜臀| 奇米影视一区二区三区| 日韩午夜在线影院| 国产一区二区三区av电影| 久久先锋影音av| 成人中文字幕电影| 亚洲欧美一区二区久久| 色婷婷综合久色| 午夜国产精品一区| 欧美本精品男人aⅴ天堂| 韩国v欧美v日本v亚洲v| 国产精品丝袜在线| 91国偷自产一区二区使用方法| 亚洲乱码一区二区三区在线观看| 色婷婷精品久久二区二区蜜臀av| 亚洲成a人v欧美综合天堂下载| 91精品国产91久久久久久一区二区 | 国产综合色在线| 欧美韩国日本不卡| 在线观看日韩一区| 美女mm1313爽爽久久久蜜臀| 国产日韩欧美精品在线| 99久久综合99久久综合网站| 亚洲一区二区免费视频| 欧美一级一区二区| 成人丝袜视频网| 亚洲成人资源网| 久久精品人人做人人爽97| 91蜜桃免费观看视频|