国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

SQL Server中定義索引時需要注意的事項

2024-08-31 00:43:39
字體:
來源:轉載
供稿:網友

索引紀錄了所索引列在數據庫表中的物理存儲位置,實現了表中數據的邏輯排序。使用索引可以加快數據查詢速度、減少系統響應時間、可以使表和表之間的連接速度加快。

但是,索引的亂用可能達不到預期的效果,反而給數據庫增加了負擔,下面介紹一些定義索引的基本原則:

1、定義索引需要付出一定代價,使用時需要權衡利弊

創建索引和維護索引都需要花費時間與精力。當建有索引的表中的紀錄又增加、刪除、修改操作時,數據庫要對索引進行重新調整,需要消耗服務器的資源。當表中的數據越多,這個消耗的資源也就越多。每個索引都會占用一定的物理空間。若索引多了,不但會占用大量的物理空間,而且,也會影響到整個數據庫的運行性能。因此,建立索引時,需要在得與失之間進行權衡。

2、不要對查詢中很少涉及的列或者重復比較多的列建立索引

在這樣的字段上建立索引,不能提高查詢速度,反而增加了系統維護時間和占用了系統空間,會降低數據庫的整體性能。

3、對于按范圍查詢的列要盡量建立索引

對于需要在指定范圍內快速或者頻繁查詢的數據列,需要為其建立索引。因為索引已經排序,其保存的時候指定的范圍是連續的,查詢可以利用索引的排序,加快查詢時間,減少用戶等待時間。

若雖然可能需要按范圍來進行查詢,但是,若這個范圍查詢條件利用的不多的情況下,最好不好采用索引。另外,對于采用范圍查詢時,最好能利用TOP關鍵字來限制一次查詢的結果。可以大大的提高查詢的效率。

4、為主鍵或外鍵建立索引

定義有主鍵的索引列,一定要為其建立索引。因為主鍵可以加速定位到表中的某一行。結合索引的作用,可以使得查詢的速度加倍。另外,若要使得某個字段的值唯一,可以通過兩種索引方式實現。一種就是上面所講的主鍵索引。還有一種就是唯一索引,利用UNIQUE關鍵字指定字段內容的唯一性。這兩種方式都會在表中的指定列上自動創建唯一索引。這兩種方式的結果沒有明顯的區別。查詢優化器不會區分到底是哪種方式建立的唯一性索引,而且他們進行數據查詢的方式也是相同的。

若某張表中的數據列定義有外鍵,則最好也要為這個字段建立索引。因為外鍵的主要作用就在于表與表之間的連接查詢。若在外鍵上建立索引,可以加速表與表之間的連接查詢。

5、不要為特殊的數據類型建立索引

有些字段比較特殊。如文本字段(TXT)、圖像類型字段(IMAGE)等等。如果表中的字段屬于這些數據類型,則最好不要為其建立索引。因為這些字段有一些共同的特點。如長度不確定,要么很長,幾個字符;要么就是空字符串。在這種類型的字段上建立索引,那根本起不了作用。相反,還增加了系統的負擔。

6、索引可以跟Where語句的集合融為一體

對于經常用在Where子句中的數據列,將索引建立在Where子句的集合過程中,對于需要加速或者頻繁檢索的數據列,可以讓這些經常參與查詢的數據列按照索引的排序進行查詢,以加快查詢的時間。

總之,索引似一把雙刃劍,即可以提高數據庫的性能,也可能對數據庫的性能起到反面作用。在具體使用過程中要做好平衡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 太康县| 苍梧县| 阿瓦提县| 门头沟区| 和硕县| 隆安县| 大安市| 通海县| 哈密市| 阿坝县| 义马市| 碌曲县| 义马市| 工布江达县| 渭源县| 磐安县| 筠连县| 宁远县| 奇台县| 新安县| 乡城县| 彝良县| 玉树县| 琼中| 临夏市| 高要市| 怀化市| 巴彦淖尔市| 龙门县| 丰镇市| 宁津县| 乌审旗| 油尖旺区| 错那县| 济南市| 游戏| 南宫市| 奉化市| 宁陵县| 宁远县| 富锦市|