索引的分類解析

2021-12-30 07:10:57 字數 1120 閱讀 5126

注意:索引是在儲存引擎中實現的,也就是說不同的儲存引擎,會使用不同的索引。myisam和innodb儲存引擎:只支援btree索引,也就是說預設使用btree,不能夠更換。memory/heap儲存引擎:支援hash和btree索引。

1、索引我們分為四類來講單列索引(普通索引,唯一索引,主鍵索引)、組合索引、全文索引、空間索引、

1.1、單列索引:乙個索引只包含單個列,但乙個表中可以有多個單列索引。 這裡不要搞混淆了。

1.1.1、普通索引:mysql中基本索引型別,沒有什麼限制,允許在定義索引的列中插入重複值和空值,純粹為了查詢資料更快一點。

1.1.2、唯一索引:索引列中的值必須是唯一的,但是允許為空值,

1.1.3、主鍵索引:是一種特殊的唯一索引,不允許有空值。(主鍵約束,就是乙個主鍵索引)

1.2、組合索引:在表中的多個字段組合上建立的索引,只有在查詢條件中使用了這些欄位的左邊欄位時,索引才會被使用,使用組合索引時遵循最左字首集合。例如,這裡由id、name和age3個字段構成的索引,索引行中就按id/name/age的順序存放,索引可以索引下面字段組合(id,name,age)、(id,name)或者(id)。如果要查詢的字段不構成索引最左面的字首,那麼就不會是用索引,比如,age或者(name,age)組合就不會使用索引查詢

1.3、全文索引:全文索引,只有在myisam引擎上才能使用,只能在char,varchar,text型別欄位上使用全文索引,介紹了要求,說說什麼是全文索引,就是在一堆文字中,通過其中的某個關鍵字等,就能找到該欄位所屬的記錄行,比如有"你是個大煞筆,二貨 ..." 通過大煞筆,可能就可以找到該條記錄。這裡說的是可能,因為全文索引的使用涉及了很多細節,我們只需要知道這個大概意思。

1.4、空間索引:空間索引是對空間資料型別的字段建立的索引,mysql中的空間資料型別有四種,geometry、point、linestring、polygon。在建立空間索引時,使用spatial關鍵字。要求,引擎為myisam,建立空間索引的列,必須將其宣告為not null。可能跟遊戲開發有關。

索引的分類

注意 索引是在儲存引擎中實現的,也就是說不同的儲存引擎,會使用不同的索引。myisam和innodb儲存引擎 只支援btree索引,也就是說預設使用btree,不能夠更換。memory heap儲存引擎 支援hash和btree索引。1 索引我們分為四類來講單列索引 普通索引,唯一索引,主鍵索引 組...

索引的分類和 建立索引

索引的分類和 建立索引 簡單介紹下 單值索引 即乙個索引只包含單個列 乙個表可以有多個單值索引 一張表的單值索引 最好不超過 5個 唯一索引 即 索引列的值 必須為一 但是可以有空值 復合索引 即 乙個 索引包含多個列 建立索引 create unique index indexname on my...

Oracle 索引的分類

看到 itpub 論壇上的乙個帖子,對 oracle 的索引分類總結得言簡意賅,於是收藏過來。又最近一直看rac,就補充了一點反向索引的東西。邏輯上 single column 單列索引 concatenated 多列索引 unique 唯一索引 nonunique 非唯一索引 function b...