索引基礎知識

2021-06-20 21:01:57 字數 1211 閱讀 1100

sql server 2005

其他版本

0(共 1)對本文的評價是有幫助 - 

評價此主題

索引是與表或檢視關聯的磁碟上結構,可以加快從表或檢視中檢索行的速度。索引包含由表或檢視中的一列或多列生成的鍵。這些鍵儲存在乙個結構(b 樹)中,使 sql server 可以快速有效地查詢與鍵值關聯的行。

表或檢視可以包含以下型別的索引:

非聚集 

有關索引結構的詳細資訊,請參閱表和索引體系結構。

聚集索引和非聚集索引都可以是唯一的。這意味著任何兩行都不能有相同的索引鍵值。另外,索引也可以不是唯一的,即多行可以共享同一鍵值。有關詳細資訊,請參閱唯一索引設計指南。

每當修改了表資料後,都會自動維護表或檢視的索引。

索引和約束

對表列定義了 primary key 約束和 unique 約束時,會自動建立索引。例如,如果建立了表並將乙個特定列標識為主鍵,則 sql server 2005 資料庫引擎 自動對該列建立 primary key 約束和索引。有關詳細資訊,請參閱建立索引(資料庫引擎)。

查詢優化器如何使用索引

設計良好的索引可以減少磁碟 i/o 操作,並且消耗的系統資源也較少,從而可以提高查詢效能。對於包含 select、update 或 delete 語句的各種查詢,索引會很有用。例如,在adventureworks資料庫中執行的查詢select title, hiredate from humanresources.employee where employeeid = 250。執行此查詢時,查詢優化器評估可用於檢索資料的每個方法,然後選擇最有效的方法。可能採用的方法包括掃瞄表和掃瞄乙個或多個索引(如果有)。

掃瞄表時,查詢優化器讀取表中的所有行,並提取滿足查詢條件的行。掃瞄表會有許多磁碟 i/o 操作,並占用大量資源。但是,如果查詢的結果集是佔表中較高百分比的行,掃瞄表會是最為有效的方法。

查詢優化器使用索引時,搜尋索引鍵列,查詢到查詢所需行的儲存位置,然後從該位置提取匹配行。通常,搜尋索引比搜尋表要快很多,因為索引與表不同,一般每行包含的列非常少,且行遵循排序順序。

查詢優化器在執行查詢時通常會選擇最有效的方法。但如果沒有索引,則查詢優化器必須掃瞄表。您的任務是設計並建立最適合您的環境的索引,以便查詢優化器可以從多個有效的索引中選擇。sql server 2005 提供的資料庫引擎優化顧問可以幫助分析資料庫環境並選擇適當的索引。

索引基礎知識

1 快速取資料 2 保證資料記錄的唯一性 3 加快表的連線速度 4 在使用order by group by子句進行資料檢索時,利用索引可以減少排序和分組的時間。1 索引需要佔物理空間。2 當對表中的資料進行增加 刪除和修改的時候,索引也要動態的維護,降低了資料的維護速度。其實,索引的本質是乙個查詢...

索引基礎知識

間隙鎖實質上是對索引前後的間隙上鎖,不對索引本身上鎖。根據檢索條件向左尋找最靠近檢索條件的記錄值a,作為左區間,向右尋找最靠近檢索條件的記錄值b作為右區間,即鎖定的間隙為 a,b 間隙鎖的目的是為了防止幻讀,其主要通過兩個方面實現這個目的 1 防止間隙內有新資料被插入。2 防止已存在的資料,更新成間...

Mysql基礎知識 索引

mysql 索引 1.索引的概念 索引是建立在表上的,對資料庫表中的一列或多列的值進行排序的一種結構。索引有2種儲存型別 b型樹索引 和 雜湊索引。innodb和myisam儲存引擎支援b型樹索引,memory儲存引擎支援雜湊索引。優點 提高檢索資料的速度。對於有依賴關係的子表和父表之間的聯合,可提...