回覆列表
  • 1 # 小馬哥

    索引是一種單獨的、物理的對資料庫表中一列或多列的值進行排序的一種儲存結構,它是某個表中一列或若干列值的集合和相應的指向表中物理標識這些值的資料頁的邏輯指標清單。索引的作用相當於圖書的目錄,可以根據目錄中的頁碼快速找到所需的內容。一個索引是儲存的表中一個特定列的值資料結構(最常見的是B-Tree,還有雜湊表索引和R-tree)。索引是在表的列上建立。所以,要記住的關鍵點是索引包含一個表中列的值,並且這些值儲存在一個數據結構中。請記住記住這一點:索引是一種資料結構 使用索引的全部意義就是透過縮小一張表中需要查詢的記錄(行)的數目來加快搜索的速度。假設有一張學生名單表,有一百條資料。要查詢其中名字為 小明 的學生。一般採取select * from students where name ="小明";由於我們想要得到每一個名字為小明的學生資訊,在查詢到第一個符合條件的行後,不能停止查詢,因為可能還有其他符合條件的行。所以,必須一行一行的查詢直到最後一行-這就意味資料庫不得不檢查上千行資料才能找到所以名字為小明 的學生。這就是所謂的全表掃描。假設我們在 name這一列上建立一個B-Tree索引。當我們用SQL查詢名字是‘小明 ’的學生時,不需要再掃描全表。而是用索引查詢去查詢名字為‘小明 ’的學生,因為索引已經按照按字母順序排序。索引已經排序意味著查詢一個名字會快很多,因為名字首字母為‘小’的學生都是排列在一起的。另外重要的一點是,索引同時儲存了表中相應行的指標以獲取其他列的資料。

  • 中秋節和大豐收的關聯?
  • 不慎落水,怎麼自救?