如何檢視sql查詢是否用到索引 mysql

2021-09-11 21:29:16 字數 1027 閱讀 3613

使用解釋函式explain,只需新增在sql語句之前即可:

表中的索引:

檢視sql是否用到索引:

我們只需要注意乙個最重要的type的資訊很明顯的提現是否用到索引:

type結果值從好到壞依次是:

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

一般來說,得保證查詢至少達到range級別,最好能達到ref,否則就可能會出現效能問題。

possible_keys:sql所用到的索引

key:顯示mysql實際決定使用的鍵(索引)。如果沒有選擇索引,鍵是null

rows:顯示mysql認為它執行查詢時必須檢查的行數。

注意: 如遇到欄位太長,新增不了索引,而又不能減小字段長度,則可以需要指定索引長度。

如:create  index 

索引名稱

on表名

(欄位名

(size

)) ;

create  index 

idx_element_*** 

on 

table_element

(***_id

(200

)) ;

給table_element表中的***_id欄位新增指定200長度的索引idx_element_***

如何檢視sql查詢是否用到索引 mysql

使用解釋函式explain,只需新增在sql語句之前即可 表中的索引 檢視sql是否用到索引 我們只需要注意乙個最重要的type的資訊很明顯的提現是否用到索引 type結果值從好到壞依次是 system const eq ref ref fulltext ref or null index merg...

mysql 檢視sql是否使用索引

explain執行結果關注以下幾個字段 table 這一列是查詢設計的表。type 很重要的一列,顯示了查詢使用了那種型別,是否使用的索引,能反映出語句的質量。一般這個指標從好到壞依次是 system const eq ref ref 最好達到 fulltext ref or null index ...

mysql like 是否會用到索引

mysql在使用like查詢中,能不能用到索引?在什麼地方使用索引呢?在使用like的時候,如果使用 會不會用到索引呢?explain select from user where username like ptd 上面的結果是全表掃瞄 type all 並沒有使用到索引。只是使用乙個 的查詢結果...