一、簡介
索引的作用:
索引是一種對數據庫的某一列、或者多列的值進行排序的存儲結構。索引相當於一本書中的目錄,通過目錄可以快速定位到某一節的內容,而不用一頁一頁的翻閱查找。
二、mysql中的索引類型
- 普通索引
- 唯一索引
- 主鍵索引
- 組合索引
- 全文索引
三、索引詳解
1、普通索引
沒有加任何的限定的,默認即爲普通索引,創建方式如下
CREATE INDEX index_name ON table_name(column(length))
2、唯一索引
唯一索引和普通索引不同的是,唯一索引的值必須唯一,允許爲空值,創建方式如下;
CREATE UNIQUE INDEX index_name ON table(column(length))
3、主鍵索引
主鍵索引是特殊的唯一索引,一個表中只能有一個主鍵,創建方式如下:
CREATE TABLE table_name(
id int(11) AUTO_INCREMENT,
PRIMARY KEY("id")
);
4、組合索引
在多個列中創建索引,使用組合索引時遵循最左匹配原則
ALTER TABLE table_name ADD INDEX index_name(id,age,name);
5、全文索引
全文索引用於查找關鍵字,而不是簡單的與索引中的值比較。fulltext索引與普通索引不相同,它更像是一種搜索引擎,並非簡單使用where like語法查找,而是使用match against操作。目前支持的類型有char、varchar、text,創建方式如下:
CREATE TEABLE table_name(
id int(11),
content text,
FULLTEXT(content)
)
四、創建索引的缺點
索引雖好,可以提高查詢速度,但它也有自己的缺點,缺點如下:
1、更新表的速度下降了,如insert、delete、update操作,由於更新表的數據會同時跟新索引文件,因此更新表的速度下降了。
2、由於需要額外的數據結構存儲索引,因此建立索引會佔用一定的磁盤空間。