首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL 循序漸進 (18):索引建立、複合索引、唯一索引與 DROP 刪除

     編輯:關於SqlServer

索引:加速查詢的資料結構

如書本索引,指引 DBMS 快速定位列。建立索引後,以該欄位為條件查詢大幅加快。

基本建立語法

CREATE INDEX index_name ON table_name (column_name);

範例:單欄索引

CREATE INDEX OID_IDX ON ANTIQUEOWNERS (OWNERID);

範例:複合索引(多欄位)

CREATE INDEX NAME_IDX ON ANTIQUEOWNERS (OWNERLASTNAME, OWNERFIRSTNAME);

依宣告順序排序:先姓氏、再名字。

刪除索引

DROP INDEX OID_IDX;

同樣可刪除資料表:DROP TABLE。

唯一索引:強制欄位值不重複

部分 DBMS 不自動強制主鍵唯一性。建立唯一索引可確保:

CREATE UNIQUE INDEX OID_IDX ON ANTIQUEOWNERS (OWNERID);
  • 嘗試插入重複 OWNERID 會報錯
  • 等同於 PRIMARY KEY 或 UNIQUE 約束的底層實作

索引類型補充

類型特性適用場景
叢集索引資料實際儲存順序 = 索引順序,每表僅一個範圍查詢、排序、主鍵
非叢集索引索引指向資料列,可建多個精確查詢、覆蓋索引
複合索引多欄位組合,順序敏感多欄位聯合篩選/排序
覆蓋索引查詢所需欄位全在索引中避免查找資料頁,極速

最佳實務

  • WHERE/JOIN/ORDER BY 常用欄位優先建索引
  • 複合索引前導欄位 = 最常用篩選欄位
  • 避免過度索引:每新增索引 = INSERT/UPDATE/DELETE 額外成本
  • 定期重建/重組索引消除碎片
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved