1. 程式人生 > >Mysql explain 中type 型別說明

Mysql explain 中type 型別說明

首先: explain 的作用: 

         可以通過explain 去記錄展示 MySQL資料庫執行的的相關引數;進行慢查詢分析優化;

 

Mysql 中explain中type 型別說明:(級別由低到高,查詢速度越來越快)

 

ALL  --全表掃描,查詢匹配的行,(這個是最慢的)

 

INDEX--  使用索引  where 條件中沒有用到索引,但是用索引就能完成掃描全表; 速度有提升;

 

RANGE ----使用索引範圍掃描,索引範圍掃描,常見於<、<=、>、>=、between等操作符; 

REF----使用非唯一性索引或者唯一索引的字首掃描,返回匹配某個單獨值的記錄行; 使用了字首索引

eq_ref--- 相對於ref來說就是使用的是唯一索引,對於每個索引鍵值,只有唯一的一條匹配記錄; 一般用於聯表查詢;

CONST or SYSTEM --- 這個是通過索引很快技能定位到一行匹配的資料,就像一個常量一行(很快);

                             單表中最多隻有一條匹配行,查詢起來非常迅速,

                             select * from table_name where tableI_id =' '

                             table_id 為主鍵索引,或則唯一索引,

NULL --- 這個是sql 語句是不經過表就能返回結果的 

           select  1 from dual;  不通過表就能查詢到資料。

 

截圖留念

 

第二個知識點: 

  首先是:什麼是索引? 為什麼要建立索引?

 建立索引的目的是:加快表的查詢速度,若一張表資料量很小,很快就能找到想要的資訊,這樣就不需要建立索引,隨著表的                                     資料量增加,這個時候就需要掃描全表,查詢到匹配的資訊,這樣就需要花費更多的時間,這樣索引就出
                                 並且很快就能到資料。

 建立索引有兩種方式: Btree  Hash;  現在都採用B+ tree;

   

     索引的分類:

         |---單列索引
             |---普通索引  就是純碎的建立索引,就是為了查詢快一點,可有有空值,可以有重複值;
             |---唯一索引  單列的值保證不能重複,但是可以有空值,只能有一個;
             |---主鍵索引  特殊的唯一索引,主鍵值不能為空值
        |---組合索引
            ------ 這個多列索引,最主要的有個最左原則
        |---全文索引
           ------ 這個是myIsam 引擎下的能建立全文索引, 但是欄位必須是varchar  clob blog text;