詳解資料庫中的索引

2021-09-30 11:03:42 字數 2188 閱讀 2628

1、什麼是索引

2、使用索引為什麼能夠加快查詢速度

3、在什麼樣的條件下使用索引比較合適,而在什麼樣的條件下不能使用索引

4、索引的優缺點

一、索引的定義

1、索引是乙個單獨的、物理的資料庫結構,它是某個表中一列或若干列值的集合和相應的指向表中物理標識這些值的資料頁的邏輯指標清單。

2、索引是對資料庫表中一列或多列的值進行排序的一種結構。

3、索引提供指向儲存在表的指定列中的資料值的指標,然後根據您指定的排序順序對這些指標排序。資料庫使用索引的方式與您使用書籍中的索引的方式很相似:它搜尋索引以找到特定值,然後順指標找到包含該值的行。

4、在關聯式資料庫中,索引是一種與表有關的資料庫結構,它可以使對應於表的sql語句執行得更快。索引的作用相當於圖書的目錄,可以根據目錄中的頁碼快速找到所需的內容。

5、在資料庫關係圖中,可以在選定表的「索引/鍵」屬性頁中建立、編輯或刪除每個索引型別。當儲存索引所附加到的表,或儲存該錶所在的關係圖時,索引將儲存在資料庫中。

二、為什麼使用索引後能夠加快檢索速度

在說明為什麼使用索引之後能夠加快索引的速率之前,先介紹一下在資料庫中查詢的方式:

1、 第一種搜尋資訊方式是全表搜尋,是將所有記錄一一取出,和查詢條件進行一一對比,然後返回滿足條件的記錄,也就是全表掃瞄。

2、第二種就是在表中建立索引,然後在索引中找到符合查詢條件的索引值,最後通過儲存在索引中的rowid(相當於頁碼)快速找到表中對應的記錄。

相對第一種查詢方式第二種查詢方式主要有兩方面的優勢:

(1) 硬體方面的優勢: 在相同的伺服器下工作的話他們的硬體設施是一樣的,所以說磁碟的i/o是一樣的,但第一種查詢是對整個表進行的掃瞄,對所有的記錄都進行了一一讀取,這樣的話讀取量比較大導致i/o相應時間較長,而使用索引查詢的話,知識通過索引找到符合條件記錄後通過索引中的記錄快速找到表中對應的記錄,這樣的話讀取量比較少,減少了i/o時間,減少了磁碟上的檔案競爭帶來的瓶頸,因此改善了資料庫的效能。

(2)軟體方面的優勢:直接在表中查詢的話就是一行一行的查詢,查詢的速度很慢,而在索引中的資料已經排,所以查詢的時候使用的是二分查詢法所以查詢速度比較快。

三、在什麼樣的條件下使用索引比較合適,而在什麼樣的條件下不能使用索引

1、適合建立索引的有:

(1)在經常要進行搜尋的屬性列上建立索引,這樣可以加快搜尋速度。

(2)作為主鍵的列上建立索引,強制該列的唯一性和組織表中資料的排列結構。

(3)經常用來連線的列上建立索引,比如外來鍵等通過建立索引可以加快和其他表的連線速度.

(4)經常進行排序的列上建立索引,因為索引已經進行了排序,這樣的話可以直接利用索引的排序。

(5)經常作為where子句中的列建立索引,這樣這個條件列是排好序的,所以查詢的速度會更快,也加快了條件的判斷。

2、不適合建立索引的有:

(1)會經常進行增刪改查的屬性列不能建立索引,因為要維護索引所以速度會比較慢

(1)大大加快資料的檢索速度;

(2)建立唯一性索引,保證資料庫表中每一行資料的唯一性;

(3)加速表和表之間的連線;

(4)在使用分組和排序子句進行資料檢索時,可以顯著減少查詢中分組和排序的時間。

2、缺點:  

(1)索引需要佔物理空間。

(2)當對表中的資料進行增加、刪除和修改的時候,索引也要動態的維護,降低了資料的維護速度。

通過上面的學習可以看到要麼是用時間換取空間要麼是用空間換取時間,所以不是所在什麼條件下都適合建立索引,而要看當時的條件,和具體情況而定。

注意:索引可以單獨儲存但不能單獨存在,必須要依附於某個表。

這裡寫點額的知識點:

在資料庫中寫   and .........or 的時候我們可以發現下面的不起作用,這樣是因為and的優先順序高於or所以 我們要用括號括起來 select * from student wher (sname like'hello' or *** like 'm') and  sage>10;

這樣就會起作用了。

這樣的話就挺好的: select * from student wher (sname like'hello' or *** like 'm') and  sage>10; 會起作用的 一般在電商中查詢的時候可以使用;

正確的理解資料庫索引

索引感念解析 資料庫的索引 index 類似於書的目錄,目錄使讀者不必翻閱整本書就能迅速地找到所需要的內容。索引是一種與表相關的可選的方案物件。通過在表中的一列或多列上建立索引,就能夠為資料的檢索提供快速的訪問路徑,減少查詢時硬碟i o操作,加快資料的檢索速度。目錄和索引之所以能提高查詢速度,是因為...

資料庫索引詳解

紊亂的資料庫叫做堆 建立乙個物理索引,使資料基於某乙個鍵聚集在一起。堆和聚集索引是資料頁存在的兩種方式。堆 堆就好比沒有排序過的資料頁,沒有索引的自然狀態,每個表都是組織在堆中。當表需要更多的資料,他會讓堆擴充套件使之再分配,增加在堆上的頁數。這是非常有效的,這樣,資料庫可以存放資料在任何空當,而不...

資料庫索引詳解

介紹索引前先介紹三個概念 建立索引主要是改善select執行狀況,提公升查詢效率 mysql explain select oracle explain plan for select 舉例如下 explain select from tb emp where ename 張三丰 執行的結果如下 主...