索引建立的原則

索引建立的原則

ID:38805804

大?。?7.87 KB

頁數(shù):3頁

時間:2019-06-19

索引建立的原則_第1頁
索引建立的原則_第2頁
索引建立的原則_第3頁
資源描述:

《索引建立的原則》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。

1、數(shù)據(jù)庫建立索引的原則鐵律一:天下沒有免費的午餐,使用索引是需要付出代價的索引的優(yōu)點有目共睹,但是,卻很少有人關心過采用索引所需要付出的成本。若數(shù)據(jù)庫管理員能夠對索引所需要付出的代價有一個充分的認識,也就不會那么隨意到處建立索引了。仔細數(shù)數(shù),其實建立索引的代價還是蠻大的。如創(chuàng)建索引和維護索引都需要花費時間與精力。特別是在數(shù)據(jù)庫設計的時候,數(shù)據(jù)庫管理員為表中的哪些字段需要建立索引,要調研、要協(xié)調。如當建有索引的表中的紀錄又增加、刪除、修改操作時,數(shù)據(jù)庫要對索引進行重新調整。雖然這個工作數(shù)據(jù)庫自動會完成,但是,需要消耗服務器的資源。當表中

2、的數(shù)據(jù)越多,這個消耗的資源也就越多。如索引是數(shù)據(jù)庫中實際存在的對象,所以,每個索引都會占用一定的物理空間。若索引多了,不但會占用大量的物理空間,而且,也會影響到整個數(shù)據(jù)庫的運行性能??梢姡瑪?shù)據(jù)庫管理員若要采用索引來提高系統(tǒng)的性能,自身仍然需要付出不少的代價。數(shù)據(jù)庫管理員現(xiàn)在要考慮的就是如何在這兩個之間取得一個均衡?;蛘哒f,找到一個回報與投入的臨界點。鐵律二:對于查詢中很少涉及的列或者重復值比較多的列,不要建立索引在查詢的時候,如果我們不按某個字段去查詢,則在這個字段上建立索引也是浪費。如現(xiàn)在有一張員工信息表,我們可能按員工編號、員工

3、姓名、或者出身地去查詢員工信息。但是,我們往往不會按照身份證號碼去查詢。雖然這個身份證號碼是唯一的。此時,即使在這個字段上建立索引,也不能夠提高查詢的速度。相反,增加了系統(tǒng)維護時間和占用了系統(tǒng)空間。這簡直就是搬起石頭砸自己的腳呀。另外,如上面的員工信息表,有些字段重復值比較多。如性別字段主要就是“男”、“女”;職位字段中也是有限的幾個內容。此時,在這些字段上添加索引也不會顯著的增加查詢速度,減少用戶響應時間。相反,因為需要占用空間,反而會降低數(shù)據(jù)庫的整體性能。數(shù)據(jù)庫索引管理中的第二條鐵律就是,對于查詢中很少涉及的列或者重復值比較多的

4、列,不要建立索引。鐵律三:對于按范圍查詢的列,最好建立索引在信息化管理系統(tǒng)中,很多時候需要按范圍來查詢某些交易記錄。如在ERP系統(tǒng)中,經常需要查詢當月的銷售訂單與銷售出貨情況,這就需要按日期范圍來查詢交易記錄。如有時候發(fā)現(xiàn)庫存不對時,也需要某段時期的庫存進出情況,如5月1日到12月3日的庫存交易情況等等。此時,也是根據(jù)日期來進行查詢。對于這些需要在指定范圍內快速或者頻繁查詢的數(shù)據(jù)列,需要為其建立索引。因為索引已經排序,其保存的時候指定的范圍是連續(xù)的,查詢可以利用索引的排序,加快查詢時間,減少用戶等待時間。不過,若雖然可能需要按范圍來

5、進行查詢,但是,若這個范圍查詢條件利用的不多的情況下,最好不好采用索引。如在員工信息表中,可能需要查詢2008年3月份以前入職的員工明細,要為他們增加福利。但是,由于表中記錄不多,而且,也很少進行類似的查詢。若維這個字段建立索引,雖然無傷大雅,但是很明顯,索引所獲得的收益要低于其成本支出。對數(shù)據(jù)庫管理員來說,是得不償失的。再者,若采用范圍查詢的話,最好能利用TOP關鍵字來限制一次查詢的結果。如第一次按順序只顯示前面的500條記錄等等。把TOP關鍵字跟范圍一起使用,可以大大的提高查詢的效率。鐵律四:表中若有主鍵或者外鍵,一定要為其建立

6、索引定義有主鍵的索引列,一定要為其建立索引。因為主鍵可以加速定位到表中的某一行。結合索引的作用,可以使得查詢的速度加倍。如在員工信息表中,我們往往把員工編號設置為主鍵。因為這不但可以提高查詢的速度,而且因為主鍵要求記錄的唯一,還可以保證員工編號的唯一性。此時,若再把這個員工編號字段設置為索引,則通過員工編號來查詢員工信息,其效率要比沒有建立索引高出許多。另外,若要使得某個字段的值唯一,可以通過兩種索引方式實現(xiàn)。一種就是上面所講的主鍵索引。還有一種就是唯一索引,利用UNIQUE關鍵字指定字段內容的唯一性。這兩種方式都會在表中的指定列上

7、自動創(chuàng)建唯一索引。這兩種方式的結果沒有明顯的區(qū)別。查詢優(yōu)化器不會區(qū)分到底是哪種方式建立的唯一性索引,而且他們進行數(shù)據(jù)查詢的方式也是相同的。若某張表中的數(shù)據(jù)列定義有外鍵,則最好也要為這個字段建立索引。因為外鍵的主要作用就在于表與表之間的連接查詢。若在外鍵上建立索引,可以加速表與表之間的連接查詢。如在員工基本信息表中,有一個字段為員工職位。由于員工職位經常在變化,在這里,存儲的其實只是一個員工職位的代碼。在另外一張職位信息表中詳細記錄著該職位的相關信息。此時,這個員工職位字段就是外鍵。若在這個字段上建立外鍵,則可以顯著提高兩張表的連接速

8、度。而且,記錄越多,其效果越加明顯。所以,當表中有外鍵或者主鍵的時候,就最好為其建立索引。通過索引,可以強化主鍵與外鍵的作用,提高數(shù)據(jù)庫的性能。鐵律五:對于一些特殊的數(shù)據(jù)類型,不要建立索引在表中,有些字段比較特殊。如文本字段(TXT)

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現(xiàn)內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。