索引是根據表中的一個或多個列按一定順序建立的列值與記錄行之間對應關系的表。為了提高查詢性能,可以建立質數索引。1.創建索引
在SQL語言中,CREATE INDEX語句用于創建索引,其一般格式如下:
CREATE [UNIQUE] [CLUSTER] INDEX 索引名
ON基本表名(列名[sequence],[,列名[sequence]].);
說明:
(1) UNIQUE 規定索引的每個索引值只對應表中唯一的一條記錄。
(2) CLUSTER 指定該索引為聚簇索引。所謂聚簇索引就是索引項的順序與表中記錄的物理順序一致。聚簇索引對于經常搜索一系列值的列特別有效。一旦使用聚集索引找到包含第一個值的行,就可以確保包含后續索引值的行在物理上相鄰。使用聚集索引可以大大提高查詢性能。省略CLUSTER 表示創建的索引是非聚集索引。非聚集索引類似于書中的索引。數據存儲在一個地方,索引存儲在另一個地方,索引是用網站做的指針指向數據的存儲位置。索引中的項目按索引鍵值的順序存儲,而表中的信息按另一種順序存儲(這可以由聚集索引指定)。
(3)Order : 建索引時指定列名的索引表是ASC(升序)或DESC(降序)。如果未指定,則默認為升序。
(4) 該語句創建的索引的排列方式是:先按第一個列名值排序;具有相同列值的記錄按下一列名稱排序。
【例3.8】在Student表的屬性列Sno上創建非聚集索引。
創建索引IDX_DNO_SNO
ON Student(Sno ASC);
[例3.91 在Student 表的屬性列Sname 上創建聚簇索引。
CREATE CLUSTER INDEX IDX_SNAMEON Student(Sname ASC);2.刪除索引
雖然索引可以提高查詢效率,但過多或不合適的索引會導致系統效率低下。每次用戶向表添加索引時,數據庫都必須做更多的工作。索引過多甚至會導致索引碎片,降低系統效率。因此,應及時刪除不需要的索引。刪除索引的格式如下:
DROP INDEX 索引名稱
解釋: 該語句會刪除定義的索引,數據字典中對該索引的描述也會被刪除。
【例3.10】刪除Student表的索引IDX_DNO_SNO。
DROP INDEX IDX DNO SNO;
我們專注高端建站,小程序開發、軟件系統定制開發、BUG修復、物聯網開發、各類API接口對接開發等。十余年開發經驗,每一個項目承諾做到滿意為止,多一次對比,一定讓您多一份收獲!