資料庫索引

2021-09-25 09:19:06 字數 1303 閱讀 8712

explain select * from xscj.xsqk xs  join xscj.xs_kc kc 

where xs.學號=kc.學號;

結果:

對整個過程進行解釋:

一、select_type : 查詢型別,常見的值

[******:簡單表,不使用表連線或子查詢。

primary : 主查詢,外層的查詢。

union 第二個或者後面的查詢語句。

subquery : 子查詢中的第乙個select] 

二、table

所查詢的表

三、查詢型別,mysql在表中找到所需行的方式,或者叫訪問型別

常見的訪問型別:

all 、 index 、 range 、 ref 、 eq_ref 、 const,system 、 null

1,type=all,全表掃瞄,

2,type=index,便利整個索引查詢索要匹配的行

3,type=range,索引範圍掃瞄整個表,>,>=,

4,type=ref,採用非唯一索引或者唯一索引的字首掃瞄,返回匹配某個單獨值的記錄行。ref還經常出現在join操作中。

5,type=eql_ref,類似於ref,區別就在使用的索引是唯一索引,對於每個索引鍵值,表中有一條記錄匹配;簡單來說,說是多表連線中使用 主建或唯一健作為關聯條件

6,type=const/system 單錶中最多有乙個匹配行。主要用於比較primary key [主鍵索引]或者unique[唯一]索引,因為資料都是唯一的,所以效能最優。條件使用=。

四、possible_keys : 可能使用的索引列表

五、key : 實現執行使用索引列表

六、key_len : 索引的長度

七、ref : 顯示使用哪個列或常數與key一起從表中選擇行。

八、row : 執行查詢的行數,簡單且重要,數值越大越不好,說明沒有用好索引

九、extra: 該列包含mysql解決查詢的詳細資訊

b樹   

b+樹

b+樹的每乙個非葉子節點存放索引,葉子節點每乙個存放資料,用鍊錶連線起來資料按照從小到大排序

詳細參考

資料庫 資料庫索引

索引是儲存引擎用於快速找到記錄的一種資料結構。索引以檔案的形式儲存在磁碟中。索引可以包含乙個或多個列的值。儲存引擎查詢資料的時候,先在索引中找對應值,然後根據匹配的索引記錄找到對應的資料行。1.b tree索引 2.雜湊索引 myisam和innodb儲存引擎 只支援btree索引,也就是說預設使用...

資料庫mysql索引 資料庫 mysql索引

mysql 索引 mysql索引的建立對於mysql的高效執行是很重要的,索引可以大大提高mysql的檢索速度。打個比方,如果合理的設計且使用索引的mysql是一輛蘭博基尼的話,那麼沒有設計和使用索引的mysql就是乙個人力三輪車。索引分單列索引和組合索引。單列索引,即乙個索引只包含單個列,乙個表可...

資料庫索引

索引 索引列唯一索引 主鍵索引 聚簇索引和非聚簇索引 如何建立索引 如何刪除索引 使用索引可快速訪問資料庫表中的特定資訊。索引是對資料庫表中一列或多列的值進行排序的一種結構,例如 employee 表的姓 lname 列。如果要按姓查詢特定職員,與必須搜尋表中的所有行相比,索引會幫助您更快地獲得該資...