(五)其他注意事項
“水可載舟,亦可覆舟”,索引也一樣。索引有助于提高檢索性能,但過多或不當(dāng)?shù)乃饕矔䦟?dǎo)致系統(tǒng)低效。過多的索引甚至?xí)䦟?dǎo)致索引碎片。
索引是從數(shù)據(jù)庫中獲取數(shù)據(jù)的最高效方式之一。95%的數(shù)據(jù)庫性能問題都可以采用索引技術(shù)得到解決。
1. 不要索引常用的小型表
不要為小型數(shù)據(jù)表設(shè)置任何鍵,假如它們經(jīng)常有插入和刪除操作就更別這樣作了。對這些插入和刪除操作的索引維護(hù)可能比掃描表空間消耗更多的時間。
2. 不要把社會保障號碼(SSN)或身份證號碼(ID)選作鍵
永遠(yuǎn)都不要使用 SSN 或 ID 作為數(shù)據(jù)庫的鍵。除了隱私原因以外,SSN 或 ID 需要手工輸入。永遠(yuǎn)不要使用手工輸入的鍵作為主鍵,因為一旦你輸入錯誤,你唯一能做的就是刪除整個記錄然后從頭開始。
3. 不要用用戶的鍵
在確定采用什么字段作為表的鍵的時候,可一定要小心用戶將要編輯的字段。通常的情況下不要選擇用戶可編輯的字段作為鍵。這樣做會迫使你采取以下兩個措施:
4. 不要索引 memo/notes 字段和不要索引大型文本字段(許多字符)
這樣做會讓你的索引占據(jù)大量的數(shù)據(jù)庫空間
5. 使用系統(tǒng)生成的主鍵
假如你總是在設(shè)計數(shù)據(jù)庫的時候采用系統(tǒng)生成的鍵作為主鍵,那么你實際控制了數(shù)據(jù)庫的索引完整性。這樣,數(shù)據(jù)庫和非人工機制就有效地控制了對存儲數(shù)據(jù)中每一行的訪問。
采用系統(tǒng)生成鍵作為主鍵還有一個優(yōu)點:當(dāng)你擁有一致的鍵結(jié)構(gòu)時,找到邏輯缺陷很容易。