MySQL 中如何查看 SQL 的執行計劃?

SQL 語句前面使用 EXPLAIN 關鍵字:

EXPLAIN SELECT * FROM users WHERE id = 1;

字段

含義

id

查詢的序號(如果是子查詢或聯合查詢,會有多個 id)。

select_type

查詢的類型(簡單查詢、子查詢、聯合查詢等)。

table

查詢涉及的表名。

partitions

查詢時使用的分區(如果表有分區)。

type

查詢的訪問類型(性能從高到低:system> const> eq_ref> ref> range> index> ALL)。

possible_keys

可能使用的索引。

key

實際使用的索引。

key_len

使用的索引長度。

ref

使用的索引與哪些列或常量進行比較。

rows

估算的掃描行數。

filtered

計算結果集占掃描行數的百分比(MySQL 5.7+)。

Extra

額外信息(如 Using whereUsing indexUsing temporary?等)。


EXPLAIN 的關鍵字段詳解

type:表示 MySQL 如何訪問數據,性能從高到低排序。

  • system:表中只有一行數據(系統表)。
  • const:通過主鍵或唯一索引查詢,結果只有一行。
  • eq_ref:在連接查詢中,主鍵或唯一索引被使用,返回最多一行。
  • ref:使用非唯一索引查詢,返回匹配的多行。
  • range:使用索引進行范圍查詢(如 BETWEENIN)。
  • index:全索引掃描(比全表掃描快,但仍需遍歷索引)。
  • ALL:全表掃描(性能最差)。

Extra:提供查詢的額外信息

  • Using where:查詢使用了 WHERE 條件。
  • Using index:使用了覆蓋索引(無需回表)。
  • Using temporary:使用了臨時表(常見于排序或分組)。
  • Using filesort:使用了文件排序(性能較低)。
  • Using join buffer:使用了連接緩存(多表連接時)。

如何分析 EXPLAIN 結果

通過 EXPLAIN 結果,可以優化查詢:

1.檢查 type

  • 目標是使用 consteq_refrefrange
  • 避免 ALL(全表掃描)。

2.檢查 key

    • 確保查詢使用了索引。
    • 如果沒有使用索引,考慮添加合適的索引。

3.檢查 rows

  • 估算的掃描行數越少越好。
  • 如果行數過多,優化查詢條件或索引。

4.檢查 Extra

  • 避免 Using temporaryUsing filesort
  • 盡量使用 Using index

水平有限,如有錯誤,歡迎指正!

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

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

相關文章

Discourse 中集成 Claude 3.7 Sonnet 模型

如果 Discourse 實例已經接入了 Anthropic。 那么只需要在后臺挑一個不希望繼續使用的模型改下就好。 否則需要重新在 Discourse 實例中配置 AI,然后獲得 Anthropic 的 key。 進入后臺的 AI 然后選擇 LLMs 雖然我們這里已經顯示成 3.7 了,但實際上所有…

Oracle 12c Docker安裝問題排查 sga_target 1536M is too small

一、問題描述 在虛擬機環境(4核16GB內存)上部署 truevoly/oracle-12c 容器鏡像時,一切運行正常。然而,當在一臺 128 核 CPU 和 512GB 內存的物理服務器上運行時,容器啟動時出現了 ORA-00821 等錯誤,提示 S…

DeepSeek 提示詞:高效的提示詞設計

🧑 博主簡介:CSDN博客專家,歷代文學網(PC端可以訪問:https://literature.sinhy.com/#/?__c1000,移動端可微信小程序搜索“歷代文學”)總架構師,15年工作經驗,精通Java編…

KIMI K1.5:大規模強化學習在大語言模型中的應用與工程實踐

目錄 1、核心技術創新:長上下文強化學習 2、策略優化的技術細節 2.1、在線鏡像下降變體 2.2、長度懲罰機制 2.3、智能采樣策略 3、工程架構創新 3.1、混合部署框架 3.2、代碼沙箱與獎勵模型 3.3、分布式系統架構 4、實驗成果與性能提升 5、結論與未來展望 大語言模…

從 0 到 1:使用 Docker 部署個人博客系統

引言 在當今數字化時代,擁有一個個人博客來記錄自己的學習、生活和見解是一件非常有意義的事情。然而,傳統的博客部署方式往往涉及復雜的環境配置和依賴管理,容易讓人望而卻步。而 Docker 的出現,為我們提供了一種簡單、高效的解…

多進程網絡服務端詳細說明文檔

多進程網絡服務端詳細說明文檔 一、概述 本項目實現了一個基于多進程的 TCP 網絡服務端,主要用于處理多個客戶端的連接請求。為了提高代碼的可維護性和可復用性,分成了頭文件(.h)和多個源文件(.cpp)。具體…

HDFS數據多目錄、異構存儲、回收站

1.NameNode元數據多目錄 HDFS集群中可以在hdfs-site.xml中配置“dfs.namenode.name.dir”屬性來指定NameNode存儲數據的目錄,默認NameNode數據存儲在${hadoop.tmp.dir}/dfs/name目錄,“hadoop.tmp.dir”配置項在core-site.xml中。 我們也可以將NameNod…

TFChat:騰訊大模型知識引擎(DeepSeek R1)+飛書機器人實現AI智能助手

效果 TFChat項目地址 https://github.com/fish2018/TFChat 騰訊大模型知識引擎用的是DeepSeek R1,項目為sanic和redis實現,利用httpx異步處理流式響應,同時使用buffer來避免頻繁調用飛書接口更新卡片的網絡耗時。為了進一步減少網絡IO消耗&…

HTML5 面試題

1. HTML5 新增了哪些重要特性? 語義化標簽:這些標簽有助于提高頁面的可讀性和可維護性。多媒體支持:HTML5 引入了 和 標簽,可以直接嵌入音頻和視頻文件,無需依賴插件。本地存儲:引入了 localStorage 和 se…

【Linux】Linux常用命令

目錄 文件和目錄相關命令查看和管理進程磁盤和文件系統管理用戶和權限管理網絡相關命令文本處理命令系統狀態查看命令軟件包管理命令計劃任務和后臺作業其他常用命令 1. 文件和目錄相關命令 命令作用示例pwd顯示當前工作目錄pwdls列出目錄內容ls -l 查看詳細信息cd切換目錄cd…

布署elfk-準備工作

建議申請5臺機器部署elfk: filebeat(每臺app)--> logstash(2臺keepalived)--> elasticsearch(3臺)--> kibana(部署es上)采集輸出 處理轉發 分布式存儲 展示 ELK中文社區: 搜索客,搜索人自己的社區 官方…

DeepSeek:我的AI助手之旅

★【前言】: 初次使用AI助手幫我寫作,就像摸石頭過河一樣,一點點的前行。我在慢慢的摸索,慢慢的體會中,感悟出的一點個人心得體會現分享給大家。這也說明一個問題,網站上各種使用方法和技巧是對于已經使用過的人來說的方便和快捷,但對于剛剛接觸的使用者來說,網上的各…

esp8266 rtos sdk開發環境搭建

1. 安裝必要的工具 1.1 安裝 Git Git 用于從遠程倉庫克隆代碼,你可以從Git 官方網站下載 Windows 版本的安裝程序。安裝過程中可保持默認設置,安裝完成后,在命令提示符(CMD)或 PowerShell 中輸入git --version&#…

C# | GDI+圖像測距輔助線的實現思路

C# | GDI圖像測距輔助線的實現思路 文章目錄 C# | GDI圖像測距輔助線的實現思路一、輔助線需求概述二、坐標系與角度計算2.1 笛卡爾坐標系2.2 線長和角度計算方法2.3 文本角度矯正計算方法2.4 坐標變換實現步驟 三、與if判斷方式對比四、總結 一、輔助線需求概述 在圖像測量工…

記錄此刻:歷時兩月,初步實現基于FPGA的NVMe SSD固態硬盤存儲控制器設計!

背景 為滿足實驗室橫向項目需求,在2024年12月中下旬導師提出基于FPGA的NVMe SSD控制器研發項目。項目核心目標為:通過PCIe 3.0 x4接口實現單盤3000MB/s的持續讀取速率。 實現過程 調研 花了半個月的時間查閱了一些使用FPGA實現NVME SSD控制器的論文、…

python編寫liunx服務器登陸自動巡檢腳本

前言: 用戶需要一份用Python編寫的Linux系統巡檢腳本,檢查內存、磁盤、CPU使用率,還有網絡連通性。 首先,我得確定用戶的使用場景。可能用戶是系統管理員,需要定期監控服務器狀態,確保系統正常運行。 或者…

【二分查找】P9698 [GDCPC2023] Path Planning|普及

本文涉及的基礎知識點 本博文代碼打包下載 C二分查找 [GDCPC2023] Path Planning 題面翻譯 【題目描述】 有一個 n n n 行 m m m 列的網格。網格里的每個格子都寫著一個整數,其中第 i i i 行第 j j j 列的格子里寫著整數 a i , j a_{i, j} ai,j?。從 0…

springboot015基于SpringBoot的在線視頻教育平臺的設計與實現(源碼+數據庫+文檔)

源碼地址:基于SpringBoot的在線視頻教育平臺的設計與實現 文章目錄 1.項目簡介2.部分數據庫結構與測試用例3.系統功能結構4.包含的文件列表(含論文)前端運行截圖后端運行截圖 1.項目簡介 ? 隨著科學技術的飛速發展,各行各業都在…

《深度剖析:生成對抗網絡中生成器與判別器的高效協作之道》

在人工智能的前沿領域,生成對抗網絡(GAN)以其獨特的對抗學習機制,為數據生成和處理帶來了革命性的變革。生成器與判別器作為GAN的核心組件,它們之間的協作效率直接決定了GAN在圖像生成、數據增強、風格遷移等眾多應用中…