索引用于快速找出在某個列中有一特定值的行,不使用索引,MySQL必須從第一條記錄開始讀完整個表,直到找出相關(guān)的行,表越大,查詢數(shù)據(jù)所花費的時間就越多。建立索引的操作步驟如下:
推薦教程:MySQL入門視頻教程
1、首先我們打開一個要操作的數(shù)據(jù)表,如下圖所示,我們需要給name字段添加索引。
2、接下來我們就可以通過create index來添加索引了,如下圖所示,on后面的內(nèi)容別丟掉了。
3、然后我們展開表下面的索引文件夾,就可以看到創(chuàng)建的索引了。
4、接下來我們在創(chuàng)建索引的時候還可以在字段后面添加排序方式。
5、然后刪除索引的時候用的是drop語句,如下圖所示,和刪除表類似。
6、最后執(zhí)行drop語句以后,在索引文件夾下面就沒有了索引。
擴展資料
索引是為了加速對表中數(shù)據(jù)行的檢索而創(chuàng)建的一種分散的存儲結(jié)構(gòu)。索引是針對表而建立的,它是由數(shù)據(jù)頁面以外的索引頁面組成的,每個索引頁面中的行都會含有邏輯指針,以便加速檢索物理數(shù)據(jù)。 [2]
在數(shù)據(jù)庫關(guān)系圖中,可以在選定表的“索引/鍵”屬性頁中創(chuàng)建、編輯或刪除每個索引類型。當保存索引所附加到的表,或保存該表所在的關(guān)系圖時,索引將保存在數(shù)據(jù)庫中。
在關(guān)系數(shù)據(jù)庫中,索引是一種單獨的、物理的對數(shù)據(jù)庫表中一列或多列的值進行排序的一種存儲結(jié)構(gòu),它是某個表中一列或若干列值的集合和相應的指向表中物理標識這些值的數(shù)據(jù)頁的邏輯指針清單。索引的作用相當于圖書的目錄,可以根據(jù)目錄中的頁碼快速找到所需的內(nèi)容。
索引提供指向存儲在表的指定列中的數(shù)據(jù)值的指針,然后根據(jù)您指定的排序順序?qū)@些指針排序。數(shù)據(jù)庫使用索引以找到特定值,然后順指針找到包含該值的行。這樣可以使對應于表的SQL語句執(zhí)行得更快,可快速訪問數(shù)據(jù)庫表中的特定信息。
當表中有大量記錄時,若要對表進行查詢,第一種搜索信息方式是全表搜索,是將所有記錄一一取出,和查詢條件進行一一對比,然后返回滿足條件的記錄,這樣做會消耗大量數(shù)據(jù)庫系統(tǒng)時間,并造成大量磁盤I/O操作;第二種就是在表中建立索引,然后在索引中找到符合查詢條件的索引值,最后通過保存在索引中的ROWID(相當于頁碼)快速找到表中對應的記錄。
優(yōu)點
1.大大加快數(shù)據(jù)的檢索速度;
2.創(chuàng)建唯一性索引,保證數(shù)據(jù)庫表中每一行數(shù)據(jù)的唯一性;
3.加速表和表之間的連接;
4.在使用分組和排序子句進行數(shù)據(jù)檢索時,可以顯著減少查詢中分組和排序的時間。
缺點
1.索引需要占物理空間。
2.當對表中的數(shù)據(jù)進行增加、刪除和修改的時候,索引也要動態(tài)的維護,降低了數(shù)據(jù)的維護速度。