一. 聚焦索引
1.如果某字段所包含的有差別的資料的數目有限;
2.使用between,<,<=,>,>=等運算子返回資料記錄的查詢;
3.按特定次序訪問字段;
4.返回大結果集的查詢;
5.經常用於查詢的連線條件或group by的字段;
6.其搜尋唯一列的速度也非常快;
注意:1.每個表最多只能有乙個聚焦索引;
2.聚焦索引可以是唯一索引,可以是非唯一索引;
3.聚焦索引的大均是表大小的5%;
二.非聚焦索引
1.如果某字段所包含的有差別的資料的數目非常多;
2.返回的結果集資料量不大的查詢;
3.如果某欄位經常用於查詢的搜尋條件,並要求其內容要符合特定的值;
4.不常新增或修改資料且包含大量資料的表;
5.覆蓋查詢;
注意:1.每個表最多能夠有249個非聚焦索引;
2.sql server 會自動重建該表中的所有非聚焦索引: 將表的聚焦索引刪除時,為表建立乙個聚焦索引時,更改聚焦索引的鍵列時;
3.當建立unique約束時,sql server 會自動建立唯一的非聚焦索引.如果表中還不存在聚焦索引,可以指定它成為唯一聚集索引;
B tree索引的適用範圍
指和索引中的所有列進行匹配。即查詢條件中完全使用索引中的鍵,並且都為等於條件 指條件中使用的列最左匹配索引中的列,並且都為等於條件。指只匹配某一列的開頭部分,如col1 aaa 但是必須滿足上面提到的匹配最左字首。如 col1 aaa and col2 like k 但是必須滿足上面提到的匹配最左字...
SQL Server聚集索引和非聚焦索引
1 什麼是索引?索引在資料庫中的作用類似於目錄在書籍中的作用,用來提高查詢資訊的速度。使用索引查資料無需進行全表掃瞄,可以快速查詢所需的資料。2 聚集索引和非聚集索引的區別?乙個表只能有乙個聚集索引但可以有多個非聚集索引。聚集索引的葉節點就是最終的資料節點,而非聚集索引的葉節仍然是索引節點,但它有乙...
聚集索引與非聚集索引的總結
原文 g 聚集索引 每一行所有列的資料都存在一起,根據主鍵的索引查詢 非聚集索引,每列分開儲存,根據單列值索引查詢。眾所周知,索引是關係型資料庫中給資料庫表中一列或多列的值排序後的儲存結構,sql的主流索引結構有b 樹以及hash結構,聚集索引以及非聚集索引用的是b 樹索引。這篇文章會總結sql s...