mysql 執行計劃 explain命令 詳解

explain

在這里插入圖片描述

  • id :select查詢的序列號,包含一組數字,表示查詢中執行select子句或操作表的順序
  • select_type:查詢類型 或者是 其他操作類型
  • table :正在訪問哪個表
  • partitions :匹配的分區
  • type :訪問的類型,評價sql性能的一個指標
  • possible_keys :顯示可能應用在這張表中的索引,一個或多個,但不一定實際使用到
  • key :實際使用到的索引,如果為NULL,則沒有使用索引
  • key_len :表示索引中使用的字節數,可通過該列計算查詢中使用的索引的長度
  • ref :顯示索引的哪一列被使用了,如果可能的話,是一個常數,哪些列或常量被用于查找索引列上的值
  • rows :根據表統計信息及索引選用情況,大致估算出找到所需的記錄所需讀取的行數
  • filtered :表示符合查詢條件的數據占全部數據的百分比
  • Extra :包含不適合在其它列中顯示但十分重要的額外信息

select_type

  • SIMPLE: 簡單查詢,不包含子查詢或UNION。
  • PRIMARY: 主查詢,包含子查詢時最外層的查詢。
  • SUBQUERY: 子查詢,出現在SELECT或WHERE中的獨立子查詢。
  • DEPENDENT SUBQUERY: 相關子查詢,結果依賴于外部查詢的列。
  • UNCACHEABLE SUBQUERY: 無法緩存的子查詢(如含隨機函數或變量)。
  • UNION: UNION操作中第二個或后續的SELECT語句。
  • UNION RESULT: UNION操作的結果集。
  • DERIVED: 派生表(子查詢在FROM子句中)。
  • MATERIALIZED: 物化子查詢,結果被存儲為臨時表供后續使用。

type單表訪問方法

連接類型,有如下幾種取值,性能從好到壞排序 如下:

  • null:MySQL能夠在優化階段分解查詢語句,在執行階段用不著再訪問表或索引,如select 1;

  • system:該表只有一行(相當于系統表),system是const類型的特例

  • const:“常數”,針對主鍵或唯一索引的等值查詢掃描, 最多只返回一行數據。 const 查詢速度非常快, 因為它僅僅讀取一次即可

  • eq_ref:當使用了索引的全部組成部分,并且索引是PRIMARY KEY或UNIQUE NOT NULL 才會使用該類型,性能僅次于system及const。

  • ref:搜索條件為二 級索引列與常數進行得值比較,形成的掃描區為單點掃描區間 采用二級索引來執行查詢"的訪問方法稱為 ref。

  • fulltext:全文索引

  • ref_or_null:該類型類似于ref,但是MySQL會額外搜索哪些行包含了NULL。這種類型常見于解析子查詢

  • index_merge:此類型表示使用了索引合并優化,表示一個查詢里面用到了多個索引

  • unique_subquery:該類型和eq_ref類似,但是使用了IN查詢,且子查詢是主鍵或者唯一索引。

  • range

    ? SELECT * FROM single_table WHERE key2 IN (1438, 6328) OR (key2 >= 38 AND key2 <= 79);

    ? 如果使用 idx_key2 執行該查詢,那么對應的掃描區間就是 [1438, 1438]、[6328, 6328] 以及 [38, 79]。設計 MySQL 的大叔把“使用索引執行查詢時,對應的掃描區間為若干個單點掃描區間或者范圍掃描區間”的訪問方法稱為 range(僅包含一個單點掃描區間的訪問方法不能稱為 range 訪問方法,掃描區間為 (?∞,+∞) 的訪問方法也不能稱為 range 訪問方法)。

    ? 范圍掃描,表示檢索了指定范圍的行,主要用于有限制的索引掃描。比較常見的范圍掃描是帶有BETWEEN子句或WHERE子句里有>、>=、<、<=、IS NULL、<=>、BETWEEN、LIKE、IN()等操作符。

  • index:全索引掃描,和ALL類似,只不過index是全盤掃描了索引的數據。當查詢僅使用索引中的一部分列時,可使用此類型。有兩種場景會觸發:

    • 如果索引是查詢的覆蓋索引,并且索引查詢的數據就可以滿足查詢中所需的所有數據,則只掃描索引樹。此時,explain的Extra 列的結果是Using index。index通常比ALL快,因為索引的大小通常小于表數據。
    • 按索引的順序來查找數據行,執行了全表掃描。此時,explain的Extra列的結果不會出現Uses index。
  • ALL:全表掃描,性能最差。直接掃描主鍵索引葉子節點文件

extra

展示有關本次查詢的附加信息,取值如下:

  • Using filesort:當Query 中包含 ORDER BY 操作,而且無法利用索引完成排序操作的時候,MySQL Query Optimizer 不得不選擇相應的排序算法來實現。數據較少時從內存排序,否則從磁盤排序。Using tempporary:在對MySQL查詢結果進行排序時,使用了臨時表,這樣的查詢效率是比外部排序更低的,常見于order by和group by。

  • Using index:使用了索引覆蓋

  • Using where:使用了where進行過濾,即使用到了索引,如果沒有索引,說明是去聚集索引全盤掃描,說明沒用到where進行過濾,只用where進行判斷

  • Using index condition:使用了索引下推

  • Using MRR:使用了Multi-Range Read優化

  • Using join buffer:使用了連接緩存,比如說在查詢的時候,多表join的次數非常多,那么將配置文件中的緩沖區的join buffer調大一些

  • Distinct:查找distinct值,當找到第一個匹配的行后,就不再搜索了

  • id :select查詢的序列號,包含一組數字,表示查詢中執行select子句或操作表的順序

  • select_type:查詢類型 或者是 其他操作類型

  • table :正在訪問哪個表

  • partitions :匹配的分區

  • type :訪問的類型,評價sql性能的一個指標

  • possible_keys :顯示可能應用在這張表中的索引,一個或多個,但不一定實際使用到

  • key :實際使用到的索引,如果為NULL,則沒有使用索引

  • key_len :表示索引中使用的字節數,可通過該列計算查詢中使用的索引的長度

  • ref :顯示索引的哪一列被使用了,如果可能的話,是一個常數,哪些列或常量被用于查找索引列上的值

  • rows :根據表統計信息及索引選用情況,大致估算出找到所需的記錄所需讀取的行數

  • filtered :表示符合查詢條件的數據占全部數據的百分比

  • Extra :包含不適合在其它列中顯示但十分重要的額外信息

select_type

  • SIMPLE: 簡單查詢,不包含子查詢或UNION。
  • PRIMARY: 主查詢,包含子查詢時最外層的查詢。
  • SUBQUERY: 子查詢,出現在SELECT或WHERE中的獨立子查詢。
  • DEPENDENT SUBQUERY: 相關子查詢,結果依賴于外部查詢的列。
  • UNCACHEABLE SUBQUERY: 無法緩存的子查詢(如含隨機函數或變量)。
  • UNION: UNION操作中第二個或后續的SELECT語句。
  • UNION RESULT: UNION操作的結果集。
  • DERIVED: 派生表(子查詢在FROM子句中)。
  • MATERIALIZED: 物化子查詢,結果被存儲為臨時表供后續使用。

type單表訪問方法

連接類型,有如下幾種取值,性能從好到壞排序 如下:

  • null:MySQL能夠在優化階段分解查詢語句,在執行階段用不著再訪問表或索引,如select 1;

  • system:該表只有一行(相當于系統表),system是const類型的特例

  • const:“常數”,針對主鍵或唯一索引的等值查詢掃描, 最多只返回一行數據。 const 查詢速度非常快, 因為它僅僅讀取一次即可

  • eq_ref:當使用了索引的全部組成部分,并且索引是PRIMARY KEY或UNIQUE NOT NULL 才會使用該類型,性能僅次于system及const。

  • ref:搜索條件為二 級索引列與常數進行得值比較,形成的掃描區為單點掃描區間 采用二級索引來執行查詢"的訪問方法稱為 ref。

  • fulltext:全文索引

  • ref_or_null:該類型類似于ref,但是MySQL會額外搜索哪些行包含了NULL。這種類型常見于解析子查詢

  • index_merge:此類型表示使用了索引合并優化,表示一個查詢里面用到了多個索引

  • unique_subquery:該類型和eq_ref類似,但是使用了IN查詢,且子查詢是主鍵或者唯一索引。

  • range

    ? SELECT * FROM single_table WHERE key2 IN (1438, 6328) OR (key2 >= 38 AND key2 <= 79);

    ? 如果使用 idx_key2 執行該查詢,那么對應的掃描區間就是 [1438, 1438]、[6328, 6328] 以及 [38, 79]。設計 MySQL 的大叔把“使用索引執行查詢時,對應的掃描區間為若干個單點掃描區間或者范圍掃描區間”的訪問方法稱為 range(僅包含一個單點掃描區間的訪問方法不能稱為 range 訪問方法,掃描區間為 (?∞,+∞) 的訪問方法也不能稱為 range 訪問方法)。

    ? 范圍掃描,表示檢索了指定范圍的行,主要用于有限制的索引掃描。比較常見的范圍掃描是帶有BETWEEN子句或WHERE子句里有>、>=、<、<=、IS NULL、<=>、BETWEEN、LIKE、IN()等操作符。

  • index:全索引掃描,和ALL類似,只不過index是全盤掃描了索引的數據。當查詢僅使用索引中的一部分列時,可使用此類型。有兩種場景會觸發:

    • 如果索引是查詢的覆蓋索引,并且索引查詢的數據就可以滿足查詢中所需的所有數據,則只掃描索引樹。此時,explain的Extra 列的結果是Using index。index通常比ALL快,因為索引的大小通常小于表數據。
    • 按索引的順序來查找數據行,執行了全表掃描。此時,explain的Extra列的結果不會出現Uses index。
  • ALL:全表掃描,性能最差。直接掃描主鍵索引葉子節點文件

extra

展示有關本次查詢的附加信息,取值如下:

  • Using filesort:當Query 中包含 ORDER BY 操作,而且無法利用索引完成排序操作的時候,MySQL Query Optimizer 不得不選擇相應的排序算法來實現。數據較少時從內存排序,否則從磁盤排序。Using tempporary:在對MySQL查詢結果進行排序時,使用了臨時表,這樣的查詢效率是比外部排序更低的,常見于order by和group by。

  • Using index:使用了索引覆蓋

  • Using where:使用了where進行過濾,即使用到了索引,如果沒有索引,說明是去聚集索引全盤掃描,說明沒用到where進行過濾,只用where進行判斷

  • Using index condition:使用了索引下推

  • Using MRR:使用了Multi-Range Read優化

  • Using join buffer:使用了連接緩存,比如說在查詢的時候,多表join的次數非常多,那么將配置文件中的緩沖區的join buffer調大一些

  • Distinct:查找distinct值,當找到第一個匹配的行后,就不再搜索了

  • id :select查詢的序列號,包含一組數字,表示查詢中執行select子句或操作表的順序

  • select_type:查詢類型 或者是 其他操作類型

  • table :正在訪問哪個表

  • partitions :匹配的分區

  • type :訪問的類型,評價sql性能的一個指標

  • possible_keys :顯示可能應用在這張表中的索引,一個或多個,但不一定實際使用到

  • key :實際使用到的索引,如果為NULL,則沒有使用索引

  • key_len :表示索引中使用的字節數,可通過該列計算查詢中使用的索引的長度

  • ref :顯示索引的哪一列被使用了,如果可能的話,是一個常數,哪些列或常量被用于查找索引列上的值

  • rows :根據表統計信息及索引選用情況,大致估算出找到所需的記錄所需讀取的行數

  • filtered :表示符合查詢條件的數據占全部數據的百分比

  • Extra :包含不適合在其它列中顯示但十分重要的額外信息

select_type

  • SIMPLE: 簡單查詢,不包含子查詢或UNION。
  • PRIMARY: 主查詢,包含子查詢時最外層的查詢。
  • SUBQUERY: 子查詢,出現在SELECT或WHERE中的獨立子查詢。
  • DEPENDENT SUBQUERY: 相關子查詢,結果依賴于外部查詢的列。
  • UNCACHEABLE SUBQUERY: 無法緩存的子查詢(如含隨機函數或變量)。
  • UNION: UNION操作中第二個或后續的SELECT語句。
  • UNION RESULT: UNION操作的結果集。
  • DERIVED: 派生表(子查詢在FROM子句中)。
  • MATERIALIZED: 物化子查詢,結果被存儲為臨時表供后續使用。

type單表訪問方法

連接類型,有如下幾種取值,性能從好到壞排序 如下:

  • null:MySQL能夠在優化階段分解查詢語句,在執行階段用不著再訪問表或索引,如select 1;

  • system:該表只有一行(相當于系統表),system是const類型的特例

  • const:“常數”,針對主鍵或唯一索引的等值查詢掃描, 最多只返回一行數據。 const 查詢速度非常快, 因為它僅僅讀取一次即可

  • eq_ref:當使用了索引的全部組成部分,并且索引是PRIMARY KEY或UNIQUE NOT NULL 才會使用該類型,性能僅次于system及const。

  • ref:搜索條件為二 級索引列與常數進行得值比較,形成的掃描區為單點掃描區間 采用二級索引來執行查詢"的訪問方法稱為 ref。

  • fulltext:全文索引

  • ref_or_null:該類型類似于ref,但是MySQL會額外搜索哪些行包含了NULL。這種類型常見于解析子查詢

  • index_merge:此類型表示使用了索引合并優化,表示一個查詢里面用到了多個索引

  • unique_subquery:該類型和eq_ref類似,但是使用了IN查詢,且子查詢是主鍵或者唯一索引。

  • range

    ? SELECT * FROM single_table WHERE key2 IN (1438, 6328) OR (key2 >= 38 AND key2 <= 79);

    ? 如果使用 idx_key2 執行該查詢,那么對應的掃描區間就是 [1438, 1438]、[6328, 6328] 以及 [38, 79]。設計 MySQL 的大叔把“使用索引執行查詢時,對應的掃描區間為若干個單點掃描區間或者范圍掃描區間”的訪問方法稱為 range(僅包含一個單點掃描區間的訪問方法不能稱為 range 訪問方法,掃描區間為 (?∞,+∞) 的訪問方法也不能稱為 range 訪問方法)。

    ? 范圍掃描,表示檢索了指定范圍的行,主要用于有限制的索引掃描。比較常見的范圍掃描是帶有BETWEEN子句或WHERE子句里有>、>=、<、<=、IS NULL、<=>、BETWEEN、LIKE、IN()等操作符。

  • index:全索引掃描,和ALL類似,只不過index是全盤掃描了索引的數據。當查詢僅使用索引中的一部分列時,可使用此類型。有兩種場景會觸發:

    • 如果索引是查詢的覆蓋索引,并且索引查詢的數據就可以滿足查詢中所需的所有數據,則只掃描索引樹。此時,explain的Extra 列的結果是Using index。index通常比ALL快,因為索引的大小通常小于表數據。
    • 按索引的順序來查找數據行,執行了全表掃描。此時,explain的Extra列的結果不會出現Uses index。
  • ALL:全表掃描,性能最差。直接掃描主鍵索引葉子節點文件

extra

展示有關本次查詢的附加信息,取值如下:

  • Using filesort:當Query 中包含 ORDER BY 操作,而且無法利用索引完成排序操作的時候,MySQL Query Optimizer 不得不選擇相應的排序算法來實現。數據較少時從內存排序,否則從磁盤排序。Using tempporary:在對MySQL查詢結果進行排序時,使用了臨時表,這樣的查詢效率是比外部排序更低的,常見于order by和group by。
  • Using index:使用了索引覆蓋
  • Using where:使用了where進行過濾,即使用到了索引,如果沒有索引,說明是去聚集索引全盤掃描,說明沒用到where進行過濾,只用where進行判斷
  • Using index condition:使用了索引下推
  • Using MRR:使用了Multi-Range Read優化
  • Using join buffer:使用了連接緩存,比如說在查詢的時候,多表join的次數非常多,那么將配置文件中的緩沖區的join buffer調大一些
  • Distinct:查找distinct值,當找到第一個匹配的行后,就不再搜索了

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

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

相關文章

讓大模型“更懂人話”:對齊訓練(RLHF DPO)全流程實戰解析

網羅開發 &#xff08;小紅書、快手、視頻號同名&#xff09; 大家好&#xff0c;我是 展菲&#xff0c;目前在上市企業從事人工智能項目研發管理工作&#xff0c;平時熱衷于分享各種編程領域的軟硬技能知識以及前沿技術&#xff0c;包括iOS、前端、Harmony OS、Java、Python等…

GO 原子操作面試題及參考答案

Go 的 sync/atomic 包和 sync.Mutex 的根本區別是什么&#xff1f; Go 語言中的 sync/atomic 包和 sync.Mutex 都用于處理并發編程中的同步問題&#xff0c;但它們的實現機制、應用場景和性能特性存在根本差異。理解這些差異對于編寫高效、安全的并發代碼至關重要。 sync/atomi…

MATLAB 山脊圖繪制全解析:從數據生成到可視化進階

一、引言&#xff1a;當數據分布擁有「層次感」—— 山脊圖的魅力? 在數據可視化的世界里&#xff0c;我們常常需要同時展示多個分布的形態差異。傳統的重疊密度圖雖然能呈現整體趨勢&#xff0c;但當分布數量較多時&#xff0c;曲線交疊會讓畫面變得雜亂。這時候&#xff0c…

跨境電商每周資訊—6.16-6.20

1. Instagram 在亞太地區逐漸超越 TikTok 在整個亞太地區&#xff0c;Instagram用戶數量正逐漸超過TikTok。預計2025年日本Instagram用戶數量將增至4440萬&#xff0c;印度今年用戶數量將增長10%&#xff0c;領跑亞太。與之形成對比的是&#xff0c;TikTok在一些國家增長速度放…

計算機網絡 網絡層:數據平面(一)

前一節學習了運輸層依賴于網絡層的主機到主機的通信服務&#xff0c;提供各種形式的進程到進程的通信。了解這種主機到主機通信服務的真實情況&#xff0c;是什么使得它工作起來的。 在本章和下一章&#xff0c;將學習網絡層實際是怎樣實現主機到主機的通信服務。與運輸層和應用…

Suna本地部署詳細教程

一、安裝基礎環境 # 1、創建環境 conda create -n suna python3.11.7# 2、激活虛擬環境 conda activate suna# 3、安裝jupyter和ipykernel pip install jupyter ipykernel# 4、將虛擬環境添加到jupyter # python -m ipykernel install --user --namemyenv --display-name"…

LeetCode 每日一題打卡|若谷的刷題日記 3day--最長連續序列

1.最長連續序列 題目&#xff1a; 給定一個未排序的整數數組 nums &#xff0c;找出數字連續的最長序列&#xff08;不要求序列元素在原數組中連續&#xff09;的長度。 請你設計并實現時間復雜度為 O(n) 的算法解決此問題。 示例 1&#xff1a; 輸入&#xff1a;nums [1…

EfficientVLA:面向視覺-語言-動作模型無訓練的加速與壓縮

25年6月來自上海交大、哈工大、西安交大和電子科大&#xff08;成都&#xff09;的論文“EfficientVLA: Training-Free Acceleration and Compression for Vision-Language-Action Models”。 視覺-語言-動作 (VLA) 模型&#xff0c;特別是基于擴散的架構&#xff0c;展現出具…

wireshark抓包分析TCP數據包

1、直接從TCP的三次握手開始說起 三次握手就是客戶與服務器建立連接的過程 客戶向服務器發送SYN(SEQ=x)報文,然后就會進入SYN_SEND狀態服務器收到SYN報文之后,回應一個SYN(SEQ=y)ACK(ACK=x+1)報文,然后就會進入SYN_RECV狀態客戶收到服務器的SYN報文,回應一個ACK(AC…

同等學力申碩-計算機統考-歷年真題和備考經驗

同等學力申請碩士學位考試是比較適合在職人員的提升學位方式&#xff0c;了解過的人應該都知道&#xff0c;現在社會的競爭壓力越來越大&#xff0c;為了提高職業生存能力&#xff0c;提升學位在所難免。 一、已有計算機統考歷年真題資料 報名過同等學力申碩計算機專業的朋友都…

OSI網絡通信模型詳解

OSI 模型就是把這整個過程拆解成了 7 個明確分工的步驟&#xff0c;每一層只負責自己那一攤事兒&#xff0c;這樣整個系統才能順暢運轉&#xff0c;出了問題也容易找到“鍋”在誰那。 核心比喻&#xff1a;寄快遞 &#x1f4e6; 想象你要把一份重要的禮物&#xff08;你的數據…

C++ 檢測文件大小和文件傳輸

檢測文件的大小 你可以通過標準 C/C 的文件 API 很方便地獲取文件的字節大小&#xff0c;以下是幾種常用方法&#xff1a; ? 方法一&#xff1a;使用 stat() 函數&#xff08;推薦&#xff09; #include <sys/stat.h> #include <stdio.h>off_t get_file_size(co…

Ubuntu 中修改網卡 IP

在 Ubuntu 中修改網卡 IP 地址可以通過以下方法實現&#xff0c;具體取決于你使用的網絡管理工具&#xff08;如 netplan、ifconfig/ip 命令或傳統 interfaces 文件&#xff09;。以下是常見方法&#xff1a; 方法 1&#xff1a;使用 netplan&#xff08;Ubuntu 17.10 及更新版…

記錄學習three.js 為什么 .glTF 是更適合 Web 的 3D 模型格式?——從 .OBJ 到 .glTF 的轉變?

在上一篇中&#xff0c;我們介紹了如何在 Three.js 中加載 .OBJ 模型。如果你沒看過&#xff0c;建議先閱讀一下基礎內容。然而你很快會發現&#xff0c;.OBJ 雖然入門簡單&#xff0c;卻并不是 Web3D 場景中的最佳格式。 .OBJ 是什么&#xff1f; .OBJ 是最早期的3D交換格式之…

H遞歸函數.go

前言&#xff1a;遞歸函數是一種強大而又充滿魅力的編程技巧。它就像是一面神奇的鏡子&#xff0c;函數在其中能夠調用自身的倒影&#xff0c;從而以一種簡潔而優雅的方式解決許多復雜的問題。 目錄 一、遞歸函數是啥玩意兒 二、遞歸函數的優缺點 優點 缺點 三、遞歸函數…

軟件功能測試的測試標準

一、軟件功能測試行業標準概述 軟件功能測試行業標準是規范軟件測試流程、方法、工具及人員資質的準則&#xff0c;是確保軟件產品的功能性、可靠性、易用性等質量特性符合用戶需求。這些標準不僅為測試人員提供了明確的指導&#xff0c;也為軟件產品的質量控制提供了有力保障。…

EchoEar(喵伴):樂鑫發布與火山引擎扣子聯名 AI 智能體開發板

隨著生成式人工智能技術的快速發展&#xff0c;大語言模型 (LLM) 正逐步成為推動智能設備升級的核心力量。樂鑫科技攜手火山引擎扣子大模型團隊&#xff0c;共同推出智能 AI 開發套件 —— EchoEar&#xff08;喵伴&#xff09;。該套件以端到端開發為核心理念&#xff0c;構建…

圖像特征檢測算法SIFT

SIFT&#xff08;Scale - Invariant Feature Transform&#xff0c;尺度不變特征變換&#xff09;是一種計算機視覺領域的特征提取算法&#xff0c;具有重要的地位和廣泛的應用。 算法原理 構建高斯金字塔 &#xff1a; 為了實現多尺度檢測&#xff0c;SIFT 算法會構建高斯金…

光纖通道收發器:市場洞察、技術演進與未來機遇

一、引言 在數字化浪潮席卷全球的當下&#xff0c;數據存儲與傳輸的需求呈爆發式增長。光纖通道收發器作為高速、可靠數據存儲網絡&#xff08;如存儲區域網絡 SAN&#xff09;中的關鍵組件&#xff0c;發揮著至關重要的作用。它通過光纖實現服務器、存儲設備和交換機之間的數…

candence17.4如何設置兩個焊盤之間在TOP與BOTTOM可以存在兩根線

為什么要走兩根線&#xff1f; 為了過大電流&#xff0c;有時候就需要我們在TOP、BOTTOM兩個面走線&#xff0c;同時開窗&#xff0c;然后通過加錫的方式增加過流能力&#xff1b; 當然由于兩面都有導線&#xff0c;必然會存在過孔&#xff0c;而過孔的過流能力不僅與過孔孔徑…