索引好比是一本書前面的目錄,能加快資料庫的查詢速度。是對資料庫表中一或多個列的值進行排序的結構,使用索引可快速訪問資料庫表中的特定資訊。
索引可以加快對錶中記錄的查詢和排序,大大提高系統效能:
(1)通過建立唯一索引可以保證資料庫表中每行資料的唯一性;建立索引有利也有許多不利的方面:(2)可以大大加快資料庫的檢索速度,這也是建立索引的主要原因;
(3)可以加速表和表之間的連線,特別是在實現資料的參考完整性方面特別有意義;
(4)在使用分組和排序子句進行資料檢索時,同樣可以顯著減少查詢中分組和排序的時間;
(5)通過使用索引可以在查詢過程中使用優化隱藏器,提高系統效能;
(1)建立索引增加了資料庫的物理空間,除了資料表佔資料空間外,每個索引還要佔一定的物理空間;索引分為聚簇索引和非聚簇索引兩種,聚簇索引是按照資料存放的物理位置為順序;聚簇索引能提高多行檢索的速度,而非聚簇索引對於單行的檢索很快。(2)建立索引和維護索引都要耗費時間,同時這種時間隨著資料量的增加而增加;
(3)當對表中資料進行增加、刪除、修改時,索引也需要動態維護,這樣就降低了資料的維護速度;
根據資料庫的功能,可以在資料庫中建立三種索引:
(1)唯一索引:不允許其中任何兩行具有相同索引值的索引(2)主鍵索引:資料庫表經常有一列或多列組合,其值唯一標識表中的每一行,稱之為表的主鍵。
(3)聚集索引:表中行的物理順序與鍵值的邏輯(索引)順序相同。乙個表只能包含乙個聚集索引。如果某索引不是聚集索引,則表中行的物理順序與鍵值的邏輯順序不匹配。與非聚集索引相比,聚集索引通常提供更快的資料訪問速度。
聚集索引和非聚集索引的區別,如字典預設按字母順序排序,讀者如知道某個字的讀音可根據字母順序快速定位。因此聚集索引和表的內容是在一起的。如讀者需查詢某個生僻字,則需按字典前面的索引,舉例按偏旁進行定位,找到該字對應的頁數,再開啟對應頁數找到該字。這種通過兩個地方而查詢到某個字的方式就如非聚集索引。
資料庫 資料庫索引
索引是儲存引擎用於快速找到記錄的一種資料結構。索引以檔案的形式儲存在磁碟中。索引可以包含乙個或多個列的值。儲存引擎查詢資料的時候,先在索引中找對應值,然後根據匹配的索引記錄找到對應的資料行。1.b tree索引 2.雜湊索引 myisam和innodb儲存引擎 只支援btree索引,也就是說預設使用...
資料庫mysql索引 資料庫 mysql索引
mysql 索引 mysql索引的建立對於mysql的高效執行是很重要的,索引可以大大提高mysql的檢索速度。打個比方,如果合理的設計且使用索引的mysql是一輛蘭博基尼的話,那麼沒有設計和使用索引的mysql就是乙個人力三輪車。索引分單列索引和組合索引。單列索引,即乙個索引只包含單個列,乙個表可...
資料庫索引
索引 索引列唯一索引 主鍵索引 聚簇索引和非聚簇索引 如何建立索引 如何刪除索引 使用索引可快速訪問資料庫表中的特定資訊。索引是對資料庫表中一列或多列的值進行排序的一種結構,例如 employee 表的姓 lname 列。如果要按姓查詢特定職員,與必須搜尋表中的所有行相比,索引會幫助您更快地獲得該資...