索引的分類

2021-08-19 02:02:07 字數 1138 閱讀 2842

注意:索引是在儲存引擎中實現的,也就是說不同的儲存引擎,會使用不同的索引。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。可能跟遊戲開發有關。

索引建立的語法如下:

索引的分類和 建立索引

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

Oracle 索引的分類

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

SQL Server 索引的分類

不同資料庫中提供了不同的索引型別,sqlserver 中的索引有兩種 聚集索引和非聚集索引。聚集索引和非聚集索引的區別是在物理資料的儲存方式上。聚集索引 聚集索引基於資料行的鍵值,在表內排序和儲存這些資料行。每個表只能有乙個聚集索引,應為資料行本分只能按乙個順序儲存。在聚集索引中,表中各行的物理順序...