mysql索引類型,mysql索引
MYSQL索引分為以下幾種類型:
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這種當它前面的欄位用作檢索之後,它本身才能拿來用作檢索,這種情況下能使用索引。這就是複合式索引的使用方法。
參考資料:
http://stackoverflow.com/questions/707874/differences-between-index-primary-unique-fulltext-in-mysql
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。