您好,登錄后才能下訂單哦!
MySQL索引有哪些分類,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
MySQL索引分為普通索引、唯一索引、主鍵索引、組合索引、全文索引。索引不會包含有null值的列,索引項可以為null(唯一索引、組合索引等),但是只要列中有null值就不會被包含在索引中。
(1)普通索引: create index index_name on table(column);
或者創建表時指定,create table(..., index index_name column);
(2)唯一索引: 類似普通索引,索引列的值必須唯一(可以為空,這點和主鍵索引不同)
create unique index index_name on table(column);或者創建表時指定unique index_name column
(3)主鍵索引: 特殊的唯一索引,不允許為空,只能有一個,一般是在建表時指定primary key(column)
(4)組合索引: 在多個字段上創建索引,遵循最左前綴原則。alter table t add index index_name(a,b,c);
(5)全文索引: 主要用來查找文本中的關鍵字,不是直接與索引中的值相比較,像是一個搜索引擎,配合match against使用,現在只有char,varchar,text上可以創建全文索引。
在數據量較大時,先將數據放在一張沒有全文索引的表里,然后再利用create index創建全文索引,比先生成全文索引再插入數據快很多。
MySQL每次查詢只使用一個索引。與其說是“數據庫查詢只能用到一個索引”,倒不如說,和全表掃描比起來,去分析兩個索引B+樹更加耗費時間。所以where A=a and B=b這種查詢使用(A,B)的組合索引最佳,B+樹根據(A,B)來排序。
type字段為All,未使用索引;為ref,使用索引
看完上述內容,你們掌握MySQL索引有哪些分類的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。