Explain解釋

參考官方文檔:https://dev.mysql.com/doc/refman/5.7/en/explain-output.html

explain關鍵字可以分析你的查詢語句的結構和性能。

explain + select查詢, 執行會返回執行計劃的信息。 注意:如果from中有子查詢,仍然會執行該子查詢,將結果放入臨時表中。

1、mysql> explain extended select * from film where id = 1;

相比 explain 多了個 partitions 字段,如果查詢是基于分區表的話,會顯示查詢將訪問的分區。

2、mysql> show warnings;

得到優化后的查詢語句,從而看出優化器優化了什么。

explain中的列:

解釋
id

序號越大,優先級越高

select_type

simple:簡單插敘,不包含子查詢和join

primary: 復雜查詢中的最外層select

subquery: 包含在select中的查詢

derived: 包含在from子句中的查詢

union : union語句中的第二個隨后的select

table

1.訪問的表

2.from中有子查詢,table是<derivedN>格式,表示當前查詢的id=N的查詢

3. union時,<union 1,2> ,1和2參與union的select的id

partitions

查詢是基于分區表的話,會顯示查詢將訪問的分區

type

表示關聯類型或訪問類型,即Mysql決定如何查找表中的行。

依次從最優到最差分別為:system > const > eq_ref > ref > range > index > ALL。

NULL表示在優化階段已經確定記錄,執行階段無需再訪問表或索引。

index:掃描全索引拿到結果,不是從索引根節點開始快速查找,這種查詢一般使用覆蓋索引。會比ALL快一點(索引的數據量少)

ALL : 全表掃描,掃描聚集索引中的所有葉子節點。

possible_keys查詢可能使用哪些索引來查找。
key

實際采用哪個索引來優化對該表的訪問,

NULL表示沒有使用索引

key_len

mysql在索引里使用的字節數,

索引的最大長度是768字節,當字符串過長時,mysql會做一個類似左前綴索引的處理,將前半部分的字符提取出來做索引。

ref在key列記錄的索引中,表查找值所用到的列或常量,

常見的有:const(常量),字段名(例:film.id)

rows估計要讀取并檢測的行數, 不一定代表實際值,值大也不一定比值小耗時更多
filterd
Extra

重要值:

Using index:使用覆蓋索引

Using where:使用 where 語句來處理結果,并且查詢的列未被索引覆蓋

Using index condition:查詢的列不完全被索引覆蓋,where條件中是一個前導列的范圍;

Using temporary:mysql需要創建一張臨時表來處理查詢。出現這種情況一般是要進行優化的,首先是想到用索引來優化。

Using filesort:將用外部排序而不是索引排序,數據較小時從內存排序,否則需要在磁盤完成排序。這種情況下一般也是要考慮使用索引來優化的。(需要優化)

Select tables optimized away:使用某些聚合函數(比如 max、min)來訪問存在索引的某個字段

幾個問題:

1. 主鍵索引和二級索引的選擇

????????要查的結果集(結果集的字段) 在主鍵索引和二級索引中都有, 優先選擇小的索引(二級索引);如果表新增一個字段,那么二級索引就不包含全部的字段, 就不一定走二級索引了。

2. 覆蓋索引

????????如果查的結果在索引數中都能找到, 叫覆蓋索引, 即不需要回表的查詢。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/87236.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/87236.shtml
英文地址,請注明出處:http://en.pswp.cn/web/87236.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

選擇 PDF 轉 HTML 轉換器的 5 個關鍵特性

市面上有很多 PDF 轉 HTML 的轉換器&#xff0c;每一款產品都有不同的功能組合。要理清并理解每個功能可能會讓人感到困惑。那么&#xff0c;真正重要的是什么呢&#xff1f; 這篇文章將介紹我們認為在選擇最佳 PDF 轉 HTML 轉換器時最重要的 5 個關鍵特性&#xff1a; 1. 轉換…

使用堡塔在服務器上部署寶塔面板-linux版

使用堡塔在服務器上部署寶塔面板-linux版 使用堡塔多機管理登錄服務器 進入寶塔官網&#xff0c;獲取安裝腳本 wget -O install_panel.sh https://download.bt.cn/install/install_panel.sh && sudo bash install_panel.sh ed8484bec3. 在堡塔多機管理中&#xff0c;…

【Unity高級】Unity多界面游戲場景管理方案詳解

引言&#xff1a;游戲界面管理的挑戰 在Unity游戲開發中&#xff0c;尤其是包含多個功能界面&#xff08;如主菜單、關卡選擇、游戲頁面、設置和商城&#xff09;的游戲&#xff0c;如何高效管理場景與界面是架構設計的核心挑戰。本文將深入探討三種主流實現方案&#xff1a;單…

WINDOWS最快布署WEB服務器:apache2

安裝JDK下載 https://tomcat.apache.org/ Index of /dist/tomcat/tomcat-9 安裝測試 http://localhost:8080/ 替換自己的文件 把自己的文件復制到&#xff1a; C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps\ROOT

Microsoft Edge 打開無反應、打開后顯示兼容性問題、卸載重裝 解決方案。一鍵卸載Microsoft Edge 。

背景&#xff1a;網絡上的瀏覽器修復、重裝、恢復默認應用測試后無用&#xff0c;以下卸載重裝方案經實測可以正常使用Microsoft Edg。 卸載軟件在資源里&#xff0c;請自取。 一、卸載軟件&#xff1a;Remove-Edge_GUI.exe 雙擊卸載等待即可。 二、在微軟商店重新安裝Micro…

Spring Boot - 參數校驗:分組校驗、自定義注解、嵌套對象全解析

01 依賴配置 在構建高效的校驗體系前&#xff0c;需先完善項目依賴配置。 以下是優化后的依賴示例&#xff1a; <dependencies><!-- Web 依賴&#xff0c;提供 RESTful 接口支持 --><dependency><groupId>org.springframework.boot</groupId>…

深入淺出多模態》(十一)之多模態經典模型:Flamingo系列

&#x1f389;AI學習星球推薦&#xff1a; GoAI的學習社區 知識星球是一個致力于提供《機器學習 | 深度學習 | CV | NLP | 大模型 | 多模態 | AIGC 》各個最新AI方向綜述、論文等成體系的學習資料&#xff0c;配有全面而有深度的專欄內容&#xff0c;包括不限于 前沿論文解讀、…

基于Pandas和FineBI的昆明職位數據分析與可視化實現(三)- 職位數據統計分析

文章目錄 一、職位數據分析1. 一級分類職位數量統計分析2. 職位二級分類分布分析3. 職位分布分析4. 工作經驗需求分布分析5. 學歷要求職位分布分析6. 企業職位供給前507. 不同規模公司的職位數量統計8. 區域職位分布分析9. 各區域平均薪資范圍分布分析10. 不同工作經驗平均薪資…

大數據Hadoop之——安裝部署hadoop

目錄 前期準備 一、JDK的安裝 1、安裝jdk 2、配置Java環境變量 3、加載環境變量 4、進行校驗 二、hadoop的環境搭建 1、hadoop的下載安裝 2、配置文件設置 2.1. 配置 hadoop-env.sh 2.2. 配置 core-site.xml 2.3. 配置 hdfs-site.xml 2.4. 配置 yarn-site.xml 2.…

Spring IoC DI介紹

文章目錄 IoC & DI 介紹IoC介紹DI 介紹 組件注冊Bean 命名約定方法注解 Bean總結 掃描路徑DI 詳解屬性注入構造方法注入Setter 注入三種注入優缺點分析 當同一類型存在多個Bean時,直接使用Autowired會存在問題使用Primary注解使用Qualifier注解使用Bean的名稱使用Resource注…

【Flutter】解決 flutter_inappwebview在 Windows 上使用導致應用閃退問題

問題背景 在 Windows 11 上運行 Flutter 桌面應用時&#xff0c;應用出現閃退現象。通過系統事件日志分析&#xff0c;發現是 MSVCP140.dll 模塊的訪問沖突異常&#xff08;錯誤代碼 c0000005&#xff09;導致的崩潰。 問題分析 1. 錯誤現象 應用啟動后立即閃退Windows 事件…

使用 JavaScript、Mastra 和 Elasticsearch 構建一個具備代理能力的 RAG 助手

作者&#xff1a;來自 Elastic JD Armada 了解如何在 JavaScript 生態系統中構建 AI 代理。 Elasticsearch 與業界領先的生成式 AI 工具和服務商有原生集成。查看我們的網絡研討會&#xff0c;了解如何超越 RAG 基礎&#xff0c;或使用 Elastic 向量數據庫構建可投入生產的應用…

Active Directory 環境下 Linux Samba 文件共享服務建設方案

Active Directory 環境下 Linux Samba 文件共享服務建設方案 目錄 需求分析方案總體設計技術架構與選型詳細部署規劃共享文件性能測試非域終端共享配置運維與權限安全管理建議1. 需求分析 因某公司(編的)新增多個部門,各部門之間存在多類型終端系統,但又有同時訪問文件庫…

Python爬蟲網安-項目-簡單網站爬取

源碼&#xff1a; https://github.com/Wist-fully/Attack/tree/pc pc_p1 目標&#xff1a; 1.進入列表頁&#xff0c;順著列表爬取每個電影詳情頁 2.利用正則來提取&#xff0c;海報&#xff0c;名稱&#xff0c;類別&#xff0c;上映的時間&#xff0c;評分&#xff0c;劇…

Golang中的數組

Golang Array和以往認知的數組有很大不同。有點像Python中的列表 1. 數組&#xff1a;是同一種數據類型的固定長度的序列。 2. 數組定義&#xff1a;var a [len]int&#xff0c;比如&#xff1a;var a [5]int&#xff0c;數組長度必須是常量&#xff0c;且是類型的組成部分。一…

《Origin畫百圖》之矩陣散點圖

矩陣散點圖的作用 一、直觀展示多變量間的兩兩關系 矩陣散點圖的基本單元是兩兩變量的散點圖&#xff0c;每個散點圖對應矩陣中的一個單元格&#xff0c;可直接反映變量間的&#xff1a; 相關性方向&#xff1a;正相關&#xff08;散點向右上傾斜&#xff09;或負相關&#x…

Flask文件下載send_file中文文件名處理解決方案

Flask文件下載send_file中文文件名處理解決方案 Flask文件下載中文文件名處理解決方案問題背景問題分析核心問題常見癥狀 解決方案技術實現關鍵技術點 完整實現示例 Flask文件下載中文文件名處理解決方案 問題背景 在Web應用開發中&#xff0c;當用戶下載包含中文字符的文件時…

新手指南:在 Ubuntu 上安裝 PostgreSQL 并通過 VS Code 連接及操作

本文檔記錄了一個初學者在 Ubuntu 系統上安裝、配置 PostgreSQL 數據庫&#xff0c;并使用 Visual Studio Code (VS Code) 作為客戶端進行連接和操作的全過程。其中包含了遇到的常見錯誤、分析和最終的解決方案&#xff0c;旨在為新手提供一個清晰、可復現的操作路徑。 最終目…

二刷 蒼穹外賣day10(含bug修改)

Spring Task Spring框架提供的任務調度工具&#xff0c;可以按照約定的時間自動執行某個代碼邏輯 cron表達式 一個字符串&#xff0c;通過cron表達式可以定義任務觸發的時間 **構成規則&#xff1a;**分為6或7個域&#xff0c;由空格分隔開&#xff0c;每個域代表一個含義 …

Android Native 之 inputflinger進程分析

Android IMS原理解析 - 簡書 Android 輸入事件分發全流程梳理&#xff08;一&#xff09;_android input事件分發流程-CSDN博客 Android 輸入事件分發全流程梳理&#xff08;二&#xff09;_android輸入事件流程圖-CSDN博客 inputflinger模塊與surfaceflinger模塊在同級目錄…