【Mysql】—— 索引的分類

注意:索引是在存儲引擎中實現的,也就是說不一樣的存儲引擎,會使用不一樣的索引。MyISAM和InnoDB存儲引擎:只支持BTREE索引,也就是說默認使用BTREE,不可以更換。MEMORY/HEAP存儲引擎:支持HASH和BTREE索引。索引

一、索引咱們分爲四類來說單列索引(普通索引,惟一索引,主鍵索引)、組合索引、全文索引、空間索引、遊戲

1.一、單列索引:一個索引只包含單個列,但一個表中能夠有多個單列索引。 這裏不要搞混淆了。遊戲開發

    1.1.一、普通索引:MySQL中基本索引類型,沒有什麼限制,容許在定義索引的列中插入重複值和空值,純粹爲了查詢數據更快一點。開發

    1.1.二、惟一索引:索引列中的值必須是惟一的,可是容許爲空值,數據類型

    1.1.三、主鍵索引:是一種特殊的惟一索引,不容許有空值。(主鍵約束,就是一個主鍵索引)數據

1.二、組合索引:在表中的多個字段組合上建立的索引,只有在查詢條件中使用了這些字段的左邊字段時,索引纔會被使用,使用組合索引時遵循最左前綴集合。例如,這裏由id、name和age3個字段構成的索引,索引行中就按id/name/age的順序存放,索引能夠索引下面字段組合(id,name,age)、(id,name)或者(id)。若是要查詢的字段不構成索引最左面的前綴,那麼就不會是用索引,好比,age或者(name,age)組合就不會使用索引查詢查詢

1.三、全文索引:全文索引,只有在MyISAM引擎上才能使用,只能在CHAR,VARCHAR,TEXT類型字段上使用全文索引,介紹了要求,說說什麼是全文索引,就是在一堆文字中,經過其中的某個關鍵字等,就能找到該字段所屬的記錄行,好比有"你是個大煞筆,二貨 ..." 經過大煞筆,可能就能夠找到該條記錄。這裏說的是可能,由於全文索引的使用涉及了不少細節,咱們只須要知道這個大概意思。集合

1.四、空間索引:空間索引是對空間數據類型的字段創建的索引,MySQL中的空間數據類型有四種,GEOMETRY、POINT、LINESTRING、POLYGON。在建立空間索引時,使用SPATIAL關鍵字。要求,引擎爲MyISAM,建立空間索引的列,必須將其聲明爲NOT NULL。可能跟遊戲開發有關。存儲引擎

相關文章
相關標籤/搜索