Oracle數(shù)據(jù)庫索引的特征
索引有兩個特征,即唯一性索引和復(fù)合索引。Oracle容災(zāi) 數(shù)據(jù)庫容災(zāi)
唯一性索引保證在索引列中的全部數(shù)據(jù)是唯一的,不會包含冗余數(shù)據(jù)。如果表中已經(jīng)有一個主鍵約束或者唯一性鍵約束,那么當(dāng)創(chuàng)建表或者修改表時,SQL Server自動創(chuàng)建一個唯一性索引。然而,如果必須保證唯一性,那么應(yīng)該創(chuàng)建主鍵約束或者唯一性鍵約束,而不是創(chuàng)建一個唯一性索引。當(dāng)創(chuàng)建唯一性索引 時,應(yīng)該認(rèn)真考慮這些規(guī)則:當(dāng)在表中創(chuàng)建主鍵約束或者唯一性鍵約束時,SQL Server自動創(chuàng)建一個唯一性索引;如果表中已經(jīng)包含有數(shù)據(jù),那么當(dāng)創(chuàng)建索引時,SQL Server檢查表中已有數(shù)據(jù)的冗余性;每當(dāng)使用插入語句插入數(shù)據(jù)或者使用修改語句修改數(shù)據(jù)時,SQL Server檢查數(shù)據(jù)的冗余性:如果有冗余值,那么SQL Server取消該語句的執(zhí)行,并且返回一個錯誤消息;確保表中的每一行數(shù)據(jù)都有一個唯一值,這樣可以確保每一個實(shí)體都可以唯一確認(rèn);只能在可以保證實(shí)體 完整性的列上創(chuàng)建唯一性索引,例如,不能在人事表中的姓名列上創(chuàng)建唯一性索引,因?yàn)槿藗兛梢杂邢嗤男彰。Oracle容災(zāi) 數(shù)據(jù)庫容災(zāi)
復(fù)合索引就是一個索引創(chuàng)建在兩個列或者多個列上。在搜索時,當(dāng)兩個或者多個列作為一個關(guān)鍵值時,*好在這些列上創(chuàng)建復(fù)合索引。當(dāng)創(chuàng)建復(fù)合索引時,應(yīng)該考慮 這些規(guī)則:最多可以把16個列合并成一個單獨(dú)的復(fù)合索引,構(gòu)成復(fù)合索引的列的總長度不能超過900字節(jié),也就是說復(fù)合列的長度不能太長;在復(fù)合索引中,所 有的列必須來自同一個表中,不能跨表建立復(fù)合列;在復(fù)合索引中,列的排列順序是非常重要的,因此要認(rèn)真排列列的順序,原則上,應(yīng)該首先定義最唯一的列,例 如在(COL1,COL2)上的索引與在(COL2,COL1)上的索引是不相同的,因?yàn)閮蓚索引的列的順序不同;為了使查詢優(yōu)化器使用復(fù)合索引,查詢語 句中的WHERE子句必須參考復(fù)合索引中*一個列;當(dāng)表中有多個關(guān)鍵列時,復(fù)合索引是非常有用的;使用復(fù)合索引可以提高查詢性能,減少在一個表中所創(chuàng)建的 索引數(shù)量。 Oracle容災(zāi) 數(shù)據(jù)庫容災(zāi) |
 |
|