SQL 執行計畫

2022-03-12 18:18:08 字數 1756 閱讀 7732

使用explain關鍵字可以模擬優化器執行sql查詢語句,從而知道mysql是如何處理你的sql語句的。分析你的查詢語句或是表結構的效能瓶頸

l 表的讀取順序

l 資料讀取操作的操作型別

l 哪些索引可以使用

l 哪些索引被實際使用

l 表之間的引用

l 每張表有多少行被優化器查詢

explian + sql 語句

explain 

select * from student;

描述select查詢的序列號

,包含一組數字,表示查詢中執行

select

子句或操作表的順序

id相同:執行順序由上至下

id不同:如果是子查詢,id的序號會遞增,id值越大優先順序越高,越先被執行

id相同不同:同時存在

舉例:

-- id 相同的 從上至下 依次進行

-- id 完全不同的 id越大越先被執行

-- id 有相同也有不相同的 

-- id 相同的為一組 , 從上往下執行

-- id 不同的為一組,在所有組中, id 值越大的越優先執行

查詢的型別:主要是用於區別:普通查詢、聯合查詢、子查詢等的複雜查詢

顯示這一行資料是哪一張表的

type顯示的是訪問型別,是較為重要的乙個指標,結果值從最好到最壞依次是:

system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > all 

需要記憶的

system>const>eq_ref>ref>range>index>all

一般來說,得保證查詢至少達到 range 級別,最好能達到 ref。

possible_keys:  可能使用的

keykey:  實際使用的索引。如果為

null

,則沒有使用索引

SQL執行計畫

引言 實際專案開發中,由於我們不知道實際查詢的時候資料庫裡發生了什麼事情,資料庫軟體是怎樣掃瞄表 怎樣使用索引的,因此,我們能感知到的就只有 sql語句執行的時間,在資料規模不大時,查詢是瞬間的,因此,在寫sql語句的時候就很少考慮到效能的問題。但是當資料規模增大,如千萬 億的時候,我們運 行同樣的...

Sql優化 執行計畫

一段sql 寫好以後,可以通過檢視sql的執行計畫,初步 該sql在執行時的效能好壞,尤其是在發現某個sql語句的效率較差時,我們可以通過檢視執行計畫,分析出該sql 的問題所在。1 開啟熟悉的檢視工具 pl sql developer。在pl sql developer中寫好一段sql 後,按f5...

Sql執行計畫解析

1.我們怎麼知道sql執行效果怎樣哪?我們需要查詢sql的執行計畫。mysql優化器是怎樣執行我們的請求的。explain select from user where username lai and password lai 2.首先通過mysql執行計畫,我們可以知道sql如何使用索引。雖然我...