1、什麼是索引 答: 索引是對資料庫表中的一列或者多列的數據進行排序的一種結構,使用索引可快速訪問數據表中的特定信息。 比如中國移動裡邊的表數據可能達到上億,這樣查詢數據用索引就派上了用場,因為使用索引可以快速檢索數據。 2、索引的分類 答: <1>從物理結構上 分為兩類:聚集索引和非聚集索引。 聚 ...
1、什麼是索引
答: 索引是對資料庫表中的一列或者多列的數據進行排序的一種結構,使用索引可快速訪問數據表中的特定信息。
比如中國移動裡邊的表數據可能達到上億,這樣查詢數據用索引就派上了用場,因為使用索引可以快速檢索數據。
2、索引的分類
答:
<1>從物理結構上 分為兩類:聚集索引和非聚集索引。
聚集索引是指 索引的鍵值的邏輯順序決定了表中相應行的物理順序。
註意:一個表中只能有一個聚集索引。
比如 一個學生表有兩列:姓名和班級。那他的索引順序對應著表的順序。
他的使用範圍是:
(1)範圍查詢:使用運算符(如between、>、<=等),返回一系列的值
(2)查詢連續的值:如一月份的數據、二月份的數據
(3)返回大型結果集:註意,通過索引檢索的數據一般控制在表中總量的20%以下, 因為當索引數據量過大時,那麼系統將不會使用該索引。
(4)在order by或group by子句中指定的列
非聚集索引:非聚集索引通過索引記錄地址訪問表中的數據。索引的邏輯順序和表中行的物理存儲順序不同。
註意:一個表中可以有多個非聚集索引。
他的適用情況是:
(1)使用join或者group by的子句
(2)不返回大型結果集的查詢
(3)經常包含在查詢的搜索條件(例如返回完全匹配的where子句)中的列。
<2>從應用上分 ,分為 主鍵索引、唯一索引、全文索引和組合索引。
(1)主鍵索引:當為一個表創建主鍵的時候,Sql Server會自動為主鍵列創建一個索引,並且該索引是聚集索引。
(2)唯一索引:唯一索引可以是聚集索引,也可以是非聚集索引。他要求 在唯一索引所限制的列中,不允許有重覆的鍵值。並且具有唯一約束的列,Sql Server會自動的給他創建一個唯一索引。
(3)組合索引:表示這個索引的索引列可以有多個。比如學生成績表中,我們可以把學生ID和考試科目ID合在一起建立索引,他的使用情況是 多個列經常在一起作為查詢條件。
(4)全文索引:他是一種特性類型的基於標記的功能性索引。一般情況下,為Sql Server中的文本數據創建索引。
全文索引主要用於在大量文本文字中搜索字元串,我們知道檢索字元串用T-SQL的like關鍵字,但是在大量文本中使用like關鍵字效率遠遠低於全文索引。