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