Mysql主鍵索引、惟一索引、普通索引、全文索引、組合索引的區別

原文: Mysql主鍵索引、惟一索引、普通索引、全文索引、組合索引的區別

Mysql索引概念:
說說Mysql索引,看到一個不多好比:索引就比如一本書的目錄,它會讓你更快的找到內容,顯然目錄(索引)並非越多越好,假如這本書1000頁,有500也是目錄,它固然效率低,目錄是要佔紙張的,而索引是要佔磁盤空間的。mysql


Mysql索引主要有兩種結構:B+樹和hash.sql

hash:hsah索引在mysql比較少用,他以把數據的索引以hash形式組織起來,所以當查找某一條記錄的時候,速度很是快.當時由於是hash結構,每一個鍵只對應一個值,並且是散列的方式分佈.因此他並不支持範圍查找和排序等功能.數據庫

B+樹:b+tree是mysql使用最頻繁的一個索引數據結構,數據結構以平衡樹的形式來組織,由於是樹型結構,因此更適合用來處理排序,範圍查找等功能.相對hash索引,B+樹在查找單條記錄的速度雖然比不上hash索引,可是由於更適合排序等操做,因此他更受用戶的歡迎.畢竟不可能只對數據庫進行單條記錄的操做. 數據結構


Mysql常見索引有:主鍵索引、惟一索引、普通索引、全文索引、組合索引spa

PRIMARY KEY(主鍵索引)  ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) UNIQUE(惟一索引)     ALTER TABLE `table_name` ADD UNIQUE (`column`)
INDEX(普通索引)     ALTER TABLE `table_name` ADD INDEX index_name ( `column` ) FULLTEXT(全文索引)      ALTER TABLE `table_name` ADD FULLTEXT ( `column` )
組合索引   ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` ) .net

Mysql各類索引區別:
普通索引:最基本的索引,沒有任何限制
惟一索引:與"普通索引"相似,不一樣的就是:索引列的值必須惟一,但容許有空值。
主鍵索引:它 是一種特殊的惟一索引,不容許有空值。 
全文索引:僅可用於 MyISAM 表,針對較大的數據,生成全文索引很耗時好空間。
組合索引:爲了更多的提升mysql效率可創建組合索引,遵循」最左前綴「原則。blog

相關文章
相關標籤/搜索