mysql 有哪些索引

來源:互聯網
上載者:User

標籤:唯一索引   擴充   http   名稱   pat   desc   lin   ble   abs   

Mysql支援哪幾種索引

從資料結構角度

1、B+樹索引(O(log(n))):關於B+樹索引,可以參考 MySQL索引背後的資料結構及演算法原理

2、hash索引:
a 僅僅能滿足"=","IN"和"<=>"查詢,不能使用範圍查詢
b 其檢索效率非常高,索引的檢索可以一次定位,不像B-Tree 索引需要從根節點到枝節點,最後才能訪問到頁節點這樣多次的IO訪問,所以 Hash 索引的查詢效率要遠高於 B-Tree 索引
c 只有Memory儲存引擎顯示支援hash索引

3、FULLTEXT索引(現在MyISAM和InnoDB引擎都支援了)

4、R-Tree索引(用於對GIS資料類型建立SPATIAL索引)

從實體儲存體角度

1、叢集索引(clustered index)

2、非叢集索引(non-clustered index)

從邏輯角度

1、主鍵索引:主鍵索引是一種特殊的唯一索引,不允許有空值

2、普通索引或者單列索引

3、多列索引(複合索引):複合索引指多個欄位上建立的索引,只有在查詢條件中使用了建立索引時的第一個欄位,索引才會被使用。使用複合索引時遵循最左首碼集合

4、唯一索引或者非唯一索引

5、空間索引:空間索引是對空間資料類型的欄位建立的索引,MYSQL中的空間資料類型有4種,分別是GEOMETRY、POINT、LINESTRING、POLYGON。MYSQL使用SPATIAL關鍵字進行擴充,使得能夠用於建立正規索引類型的文法建立空間索引。建立空間索引的列,必須將其聲明為NOT NULL,空間索引只能在儲存引擎為MYISAM的表中建立

CREATE TABLE table_name[col_name data type][unique|fulltext|spatial][index|key][index_name](col_name[length])[asc|desc]

1、unique|fulltext|spatial為選擇性參數,分別表示唯一索引、全文索引和空間索引;

2、index和key為同義字,兩者作用相同,用來指定建立索引

3、col_name為需要建立索引的欄位列,該列必須從資料表中該定義的多個列中選擇;

4、index_name指定索引的名稱,為選擇性參數,如果不指定,MYSQL預設col_name為索引值;

5、length為選擇性參數,表示索引的長度,只有字串類型的欄位才能指定索引長度;

6、asc或desc指定升序或降序的索引值儲存

mysql 有哪些索引

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.