資料庫中的索引問題

2021-07-27 08:25:05 字數 1246 閱讀 4250

概述:

對資料庫中的資料進行查詢操作時,系統對表中的資料有兩種檢索方式:一種是全表掃瞄,檢索,另一種是利用資料表上建立的索引進行掃瞄。

詳述:

全表掃瞄是將表中的資料記錄從頭到尾逐行讀取,與查詢條件進行對比,返回滿足條件的記錄。這種檢索方式需要讀取相關表中的所有資料,需要進行大量的磁碟讀寫操作。當表中資料量巨大時,查詢檢索的效率會大大降低。

索引訪問是通過搜尋索引值,再根據索引值與記錄的關係直接訪問資料表中的記錄行。

細述(以mysql資料庫為例):

根據用途,mysql資料庫中的索引主要分為幾類:主鍵索引,唯一性索引,普通索引,聚簇索引,以及全文索引幾類

普通索引是最基本的索引型別,索引列值可以取空值或者重複值。

唯一性索引與普通索引基本相同,區別僅在於索引列值不能重複,即索引列值必須唯一, 可以為空。

主鍵索引是一種唯一性索引,但其索引列值不能為空,每個表中只能有乙個主鍵

聚簇索引的索引順序就是物理儲存順序,乙個表只能有乙個聚簇索引『

全文索引只能在資料型別為varchar 和 text的列上.

sql語句:

1.檢視表中索引情況

show index from 表名;

2.建立索引(三種方法)

一是在建立表時就將索引建立成功

二是在已存在的表中使用create語句建立

三是在已存在的表中使用alter table語句建立

下面重點說一下二三種方法

二.如圖

三.如圖:

3.刪除索引:

對於索引的進一步說明:

儘管使用索引可以大大加快查詢響應速度,提高資料庫的檢索效能,但過多的使用索引會降低系統的效能。原因如下:

1.降低更新表中資料的速度

2.增加儲存空間

因此,索引值是提高檢索效率的乙個手段,但最好不要無限制的使用索引。

使用索引的建議:

使用恰當的索引會提高資料查詢的效率,但會影響資料更新的速度,不恰當的索引則會降低系統效能。因此建議盡量避免過多的建立索引

資料量較小的表最好不要建立索引

使用組合索引時,嚴格按照最左字首法則, 即按照最左欄位進行排序,當記錄值相同時,在按照次左值進行排序,以此類推

避免在不同值較少字段上建立索引,如不要在性別一列 (男女)建立索引,不僅不會提高搜尋速度,還會降低資料更新速度

使用where子句時,避免將索引列作為表示式的一部分

遇到varchar 或char 型別,字元數較多時,可採用開頭的一部分建立索引,這樣可節約空間。

資料庫中的索引

1.概念 索引是在資料庫表或者檢視上建立的物件,目的是為了加快對錶或檢視的查詢的速度 簡單理解 索引是乙個單獨的 物理的資料庫結構,它是某個表中一列或若干列值的集合和相應的指向表中物理標識這些值的資料頁的邏輯指標清單 深刻理解 按照儲存方式分為 聚集與非聚集索引 需要重視和區別的概念,後面詳解 按照...

資料庫中的索引

總結 1.什麼是索引 資料庫中的索引是某個表中一列或多列值的集合和相應的指向表中物理標識這些值的資料頁的邏輯指標清單。2.分類 唯一索引 unique 不允許兩行具有相同的索引值 建立了唯一約束,系統將自動建立唯一索引 主鍵索引 主鍵索引要求主鍵中的每個值是唯一的,建立主鍵自動建立主鍵索引 聚集索引...

資料庫中的索引

索引 與表相關的一種選擇結構,可建立在表中的一列或多列上,一旦建立,由資料庫自動維護和使用,對使用者是完全透明的。它的建立或刪除對錶沒有任何影響。注意 1.索引是一種資料庫物件,並不改變表的邏輯結構,而是在物理儲存結構上增加一些輔助資訊,以提高查詢速度。2.只有當按指定的索引列的值查詢或按索引列的順...