索引
sql
索引是對數據庫表中一個或多個列的值進行排序的結構。若是想按特定職員的姓來查找他或她,則與在表中搜索全部的行相比,索引有助於更快地獲取信息。數據庫
沒有索引的狀況下,若是執行select * from test_info where id=1000;這條語句會從表中的第一行一直搜索到第1000行,而在這列添加索引以後,就會經過索引快速定位到這一個字段。ide
索引的分類:spa
一、分爲聚簇索引和非聚簇索引兩類聚簇索引能提升多行檢索的速度,而非聚簇索引對於單行的檢索很快。3d
二、惟一索引:不容許兩行有相同的值blog
三、主鍵索引:爲表定義一個主鍵將自動建立主鍵索引,主鍵索引是惟一索引的特殊類型。主鍵索引要求主鍵中的每一個值是惟一的,而且不能爲空。排序
四、普通索引: 沒有任何的限制。索引
索引的建立:get
ALTER TABLE tbl_name ADD PRIMARY KEY (column_list): 該語句添加一個主鍵,這意味着索引值必須是惟一的,且不能爲NULL。it
ALTER TABLE tbl_name ADD UNIQUE index_name (column_list): 這條語句建立索引的值必須是惟一的(除了NULL外,NULL可能會出現屢次)。
ALTER TABLE tbl_name ADD INDEX index_name (column_list): 添加普通索引,索引值可出現屢次。
ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list):該語句指定了索引爲 FULLTEXT ,用於全文索引。
索引的刪除:
ALTER TABLE tb1_name DROP INDEX index_name
使用 show index from tablename;能夠查詢已經設置的索引。
下面是索引的添加刪除和查看的一個例子:(my_sql下)
總結:
建立索引後不只能加快檢索速度並且還會對檢索出來的數據進行排序。
有利必有弊,建立索引會消耗空間,使數據的加載變慢,因此添加索引不要冗餘,
適當的添加會大大增長數據庫查詢的效率。