資料庫索引

2021-04-17 21:28:55 字數 1799 閱讀 5135

索引

索引列唯一索引

主鍵索引

聚簇索引和非聚簇索引

如何建立索引

如何刪除索引

使用索引可快速訪問資料庫表中的特定資訊。索引是對資料庫表中一列或多列的值進行排序的一種結構,例如 employee 表的姓(lname)列。如果要按姓查詢特定職員,與必須搜尋表中的所有行相比,索引會幫助您更快地獲得該資訊。

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

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

注意;並非所有的資料庫都以相同的方式使用索引。有關更多資訊,請參見資料庫伺服器注意事項,或者查閱資料庫文件。 作為通用規則,只有當經常查詢索引列中的資料時,才需要在表上建立索引。索引占用磁碟空間,並且降低新增、刪除和更新行的速度。在多數情況下,索引用於資料檢索的速度優勢大大超過它的。

可以基於資料庫表中的單列或多列建立索引。多列索引使您可以區分其中一列可能有相同值的行。

如果經常同時搜尋兩列或多列或按兩列或多列排序時,索引也很有幫助。例如,如果經常在同一查詢中為姓和名兩列設定判據,那麼在這兩列上建立多列索引將很有意義。

唯一索引是不允許其中任何兩行具有相同索引值的索引。

當現有資料中存在重複的鍵值時,大多數資料庫不允許將新建立的唯一索引與表一起儲存。資料庫還可能防止新增將在表中建立重複鍵值的新資料。例如,如果在 employee 表中職員的姓 (lname) 上建立了唯一索引,則任何兩個員工都不能同姓。

在資料庫關係圖中為表定義主鍵將自動建立主鍵索引,主鍵索引是唯一索引的特定型別。該索引要求主鍵中的每個值都唯一。當在查詢中使用主鍵索引時,它還允許對資料的快速訪問。

聚簇(讀cù聚集,叢湊,或叢聚成的堆或團:~擁。~聚。~生。~居。花團錦~。量詞,用於聚集成團的東西:一~鮮花。)索引也稱為聚族索引,在sql語句中用cluster表示。

cluster表示要建立的索引是聚簇索引。所謂聚簇索引是指索引項的順序與表中記錄的物理順序一致的索引組織。例如,執行下面的create index語句:

create clusted index stusname on student(sname);

將會在student表的sname(姓名)列上建立乙個聚簇索引,而且student表中的記錄將按照sno值的公升序存放。

使用者可以在最常查詢的列上建立聚簇索引以提高查詢效率。顯然在乙個基本表上最多只能建立乙個聚集索引。建立聚簇索引後,更新索引列資料時,往往導致表中記錄的物理順序的變更,代價較大,因此對於經常更新的列不宜建立聚簇索引。

建立索引一般格式為:create [unique] [cluster] index 《索引名》《索引名》 on 《表名》 (《列名》[《次序》][,《列名》[《次序》]]...);

其中,《表名》指定要建索引的基本表的名字。索引可以建在該錶的一列或多列上,各列名之間用逗號分隔。每個《列名》後面還可以用《次序》指定索引值的排列次序,包括asc(公升序)和desc(降序)兩種,預設值為asc。

例如:create unique index scno on sc(sno asc,cno desc);

索引一經建立,就由系統使用和維護它,不需使用者干預。建立索引是為了減少查詢操作的時間,但如果資料增刪改頻繁,系統會花費許多時間來維護索引。這時,可以刪除一些不必要的索引。刪除索引時,系統會同時從資料字典中刪去有關該索引的描述。刪除索引一般格式為:drop index《索引名》;例如:drop index stusname;

資料庫 資料庫索引

索引是儲存引擎用於快速找到記錄的一種資料結構。索引以檔案的形式儲存在磁碟中。索引可以包含乙個或多個列的值。儲存引擎查詢資料的時候,先在索引中找對應值,然後根據匹配的索引記錄找到對應的資料行。1.b tree索引 2.雜湊索引 myisam和innodb儲存引擎 只支援btree索引,也就是說預設使用...

資料庫mysql索引 資料庫 mysql索引

mysql 索引 mysql索引的建立對於mysql的高效執行是很重要的,索引可以大大提高mysql的檢索速度。打個比方,如果合理的設計且使用索引的mysql是一輛蘭博基尼的話,那麼沒有設計和使用索引的mysql就是乙個人力三輪車。索引分單列索引和組合索引。單列索引,即乙個索引只包含單個列,乙個表可...

資料庫索引

在 microsoft sql server 資料庫中可以建立聚集索引。在聚集索引中,表中各行的物理順序與索引鍵值的邏輯 索引 順序相同。表只能包含乙個聚集索引。聚集索引通常可加快 update 和 delete 操作的速度,因為這兩個操作需要讀取大量的資料。建立或修改聚集索引可能要花很長時間,因為...