怎么创建一个索引?
?第一個是索引的名稱,第二個是索引的列,比如我們是要對id 創(chuàng)建索引還是對name創(chuàng)建索引。后面兩個很重要,一個叫索引類型。
在InnoDB 里面,索引類型有三種,普通索引、唯一索引(主鍵索引是特殊的唯一索引)、全文索引。
普通(Normal):也叫非唯一索引,是最普通的索引,沒有任何的限制。
唯一(Unique):唯一索引要求鍵值不能重復(fù)。另外需要注意的是,主鍵索引是一種特殊的唯一索引,它還多了一個限制條件,要求鍵值不能為空。主鍵索引用primay key創(chuàng)建。
全文(Fulltext):針對比較大的數(shù)據(jù),比如我們存放的是消息內(nèi)容,有幾KB 的數(shù)據(jù)的這種情況,如果要解決like 查詢效率低的問題,可以創(chuàng)建全文索引。只有文本類型的字段才可以創(chuàng)建全文索引,比如char、varchar、text。
create table m3 ( name varchar(50), fulltext index(name) );全文索引的使用:
select * from fulltext_test where match(content) against('leon' IN NATURAL LANGUAGE MODE);MyISAM 和InnoDB 支持全文索引。
這個是索引的三種類型:普通、唯一、全文。
我們說索引是一種數(shù)據(jù)結(jié)構(gòu),那么它到底應(yīng)該選擇一種什么數(shù)據(jù)結(jié)構(gòu),才能實(shí)現(xiàn)數(shù)據(jù)的高效檢索呢?
?
總結(jié)
- 上一篇: 索引是什么?
- 下一篇: 索引存储模型-二分查找