W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
索引是一種特殊的查詢表,可以被數(shù)據(jù)庫(kù)搜索引擎用來(lái)加速數(shù)據(jù)的檢索。簡(jiǎn)單說(shuō)來(lái),索引就是指向表中數(shù)據(jù)的指針。數(shù)據(jù)庫(kù)的索引同書籍后面的索引非常相像。
例如,如果想要查閱一本書中與某個(gè)特定主題相關(guān)的所有頁(yè)面,你會(huì)先去查詢索引(索引按照字母表順序列出了所有主題),然后從索引中找到一頁(yè)或者多頁(yè)與該主題相關(guān)的頁(yè)面。
索引能夠提高 SELECT 查詢和 WHERE 子句的速度,但是卻降低了包含 UPDATE 語(yǔ)句或 INSERT 語(yǔ)句的數(shù)據(jù)輸入過程的速度。索引的創(chuàng)建與刪除不會(huì)對(duì)表中的數(shù)據(jù)產(chǎn)生影響。
創(chuàng)建索引需要使用 CREATE INDEX 語(yǔ)句,該語(yǔ)句允許對(duì)索引命名,指定要?jiǎng)?chuàng)建索引的表以及對(duì)哪些列進(jìn)行索引,還可以指定索引按照升序或者降序排列。
同 UNIQUE 約束一樣,索引可以是唯一的。這種情況下,索引會(huì)阻止列中(或者列的組合,其中某些列有索引)出現(xiàn)重復(fù)的條目。
CREATE INDEX命令的基本語(yǔ)法如下:
CREATE INDEX index_name ON table_name;
單列索引基于單一的字段創(chuàng)建,其基本語(yǔ)法如下所示:
CREATE INDEX index_name
ON table_name (column_name);
唯一索引不止用于提升查詢性能,還用于保證數(shù)據(jù)完整性。唯一索引不允許向表中插入任何重復(fù)值。其基本語(yǔ)法如下所示:
CREATE UNIQUE INDEX index_name
on table_name (column_name);
如果您希望索引不止一個(gè)列,您可以在括號(hào)中列出這些列的名稱,用逗號(hào)隔開:
CREATE INDEX index_name
on table_name (column1, column2);
隱式索引由數(shù)據(jù)庫(kù)服務(wù)器在創(chuàng)建某些對(duì)象的時(shí)候自動(dòng)生成。例如,對(duì)于主鍵約束和唯一約束,數(shù)據(jù)庫(kù)服務(wù)器就會(huì)自動(dòng)創(chuàng)建索引。
索引可以用 SQL DROP 命令刪除。刪除索引時(shí)應(yīng)當(dāng)特別小心,數(shù)據(jù)庫(kù)的性能可能會(huì)因此而降低或者提高。
其基本語(yǔ)法如下:
DROP INDEX table_name.index_name;
盡管創(chuàng)建索引的目的是提升數(shù)據(jù)庫(kù)的性能,但是還是有一些情況應(yīng)當(dāng)避免使用索引。下面幾條指導(dǎo)原則給出了何時(shí)應(yīng)當(dāng)重新考慮是否使用索引:
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: