索引面試知識性問題:
一、什麼是索引
索引是為了加速對錶中資料行的檢索而建立的一種分散的儲存結構。索引是針對表而建立的,它是由資料頁面以外的索引頁面組成的,每個索引頁面中的行都會含有邏輯指標,以便加速檢索物理資料。
簡單來說,索引就是由一列或多列組成的一種儲存結構。
二、索引的優點:為什麼要建立索引?
1.保證行的唯一性(主鍵索引或唯一索引)。
2.提高檢索(查詢)效率(普通索引等)。
3.加快兩表之間的連線(外來鍵索引)。
4.提高分組和排序的字段的效率。
三、索引的缺點
總結來說:索引的建立和維護耗費時間和空間,降低增刪改的效率。
1.建立和維護索引的時間成本隨資料量的增加而不斷加大。
2.建立和維護索引的空間成本隨資料量的增加而不斷加大,每一條索引都要佔據資料庫的物理儲存空間(資料表佔據的是資料庫的資料空間)。
3.降低增刪改的效率,因為每次增刪改,索引都要改變,導致時間變長。
四、何時使用索引
1.表的資料量大,且經常進行查詢操作。
2.用於排序和分組的字段新增索引。
3.兩表連線用於多表聯合查詢的約束條件的字段要建立索引。
4.確保某一列資料不重複時新增索引。
五、索引的型別有哪些
1.普通索引:最基本的索引型別,沒有唯一性之類的限制。
2.唯一索引:唯一索引是不允許其中任何兩行具有相同索引值的索引。
3.主鍵索引:簡稱為主索引,資料庫表中一列或列組合(字段)的值唯一標識表中的每一行。該列稱為表的主鍵。
4.候選索引:與主索引一樣要求字段值的唯一性,並決定了處理記錄的順序。
5.聚集索引:也稱為聚簇索引,在聚集索引中,表中行的物理順序與鍵值的邏輯(索引)順序相同。乙個表只能包含乙個聚集索引。
6.非聚集索引:也叫非簇索引,在非聚集索引中,資料庫表中記錄的物理順序與索引順序可以不相同。乙個表中只能有乙個聚集索引。
六、索引的原理
b+樹——經過優化的b+樹,在所有的葉子結點中增加了指向下乙個葉子節點的指標,因此innodb(儲存引擎)建議為大部分表使用預設自增的主鍵作為主索引。
資料庫 資料庫索引
索引是儲存引擎用於快速找到記錄的一種資料結構。索引以檔案的形式儲存在磁碟中。索引可以包含乙個或多個列的值。儲存引擎查詢資料的時候,先在索引中找對應值,然後根據匹配的索引記錄找到對應的資料行。1.b tree索引 2.雜湊索引 myisam和innodb儲存引擎 只支援btree索引,也就是說預設使用...
資料庫mysql索引 資料庫 mysql索引
mysql 索引 mysql索引的建立對於mysql的高效執行是很重要的,索引可以大大提高mysql的檢索速度。打個比方,如果合理的設計且使用索引的mysql是一輛蘭博基尼的話,那麼沒有設計和使用索引的mysql就是乙個人力三輪車。索引分單列索引和組合索引。單列索引,即乙個索引只包含單個列,乙個表可...
資料庫的索引
索引 使用索引可快速訪問資料庫表中的特定資訊。索引是對資料庫表中一列或多列的值進行排序的一種結構,例如 employee 表的姓 lname 列。如果要按姓查詢特定職員,與必須搜尋表中的所有行相比,索引會幫助您更快地獲得該資訊。索引提供指向儲存在表的指定列中的資料值的指標,然後根據您指定的排序順序對...