KEY or INDEX :
普通索引就是不同於唯一索引的一般索引,索引所在列上可以包含有相同的值,所以中的行可能包含完全相同的行。這些索引不會對數據產生任何限制,只是為了加快數據的查詢操作。)
UNIQUE :
唯一索引值的是索引(建立在某些列上)中所有的行必須是唯一的,也就是說索引某行中字段的值和其他行的擁有不同的非NULL值,除了加快查詢操作,唯一性索引還能再插入或者更新數據時保持該字段的值唯一。當索引中兩行的值都是NULL時,他們被認為是不同的,因為NULL和它自身不相等。但是一般都避免建立索引的字段上出現NULL值)
PRIMARY :
主鍵是特殊的唯一性索引,一般情況下依噶表中只有一個主鍵,主鍵不允許字段值為NULL(和唯一性索引的區別),之間是最小的能唯一確定一行的標識字段。mysql的InnoDB將數據按照主鍵的順序存放在磁盤上。
FULLTEXT :
全文索引和以上的所有索引不一樣,在不同的數據庫系統中執行檢索的行為也大不相同。全文索引的唯一目的是實現全文檢索,只能在MATCH()/AGAINST()語句中使用。不同於其他使用B樹或者hash表實現的索引,其實現方式也不一樣。
例如索引是建立在column1,column2,column3上的,
where column1=xxx會使用索引,但是where column2=xxx不會使用索引,除非是where column1=xxx and column2=xxx這種當它前面的字段用作檢索之後,它本身才能拿來用作檢索,這種情況下能使用索引。這就是組合索引的使用方法。