1、索引應該有足夠的區分度,對區分度不大的列(例如列舉型別字段),不應該做索引(這時候應該考慮加上諸如時間範圍這樣的限制條件對記錄進行篩選)。對乙個表中最影響效能的列,可以考慮做聚簇索引。
2、小表少建索引或不建索引,可以載入到記憶體中訪問。
3、索引字段一般為差異性較大、長度較小的型別,在這些欄位上經常做一些選擇性查詢、排序、分組、關聯操作。外來鍵作為表關聯字段,如果常作關聯查詢,可以建索引。
4、對於頻繁更新及插入的資料表,定義索引不宜過多,同時可以考慮適當保留空閒索引空間,也就是說讓資料不連續,提高索引鍵更新及插入效率。
5、辦公系統中,對乙個表可能有很多篩選項,且不是必選項。所以,傾向於在表上建立多個單鍵索引而不是復合索引。除非有明確的查詢條件,(如證件型別、證件號)可建立復合索引。如果建復合索引,還要注意索引定義中字段的順序。
6、如果索引字段空值很多,並且整表記錄巨大,可以考慮建立附加表,通過附加表進行查詢,再關聯主表獲取完整資料。
7、對於插入型的實時表,如果保證新記錄插入到索引順序(特別是聚簇索引)的最後面,對效能也有一定的提公升。
8、對實時性要求高的表,建索引時必須謹慎,每建乙個索引都要體現它的價值。索引最終要建得不多不少。
9、設計表索引時,應考慮到應用場景,並在上線後跟進檢查;資料庫處理發生變化時,應對現有場景進行檢查。
資料庫設計經驗之 表的設計
1 定義一些字典表,在命名字段並為其指定資料型別的時候要保證一致性,可以在字典表裡定義常用字段的名稱 型別 列舉值及其對應的意思。列舉值可以用整型 有大小關係,例如 許可權級別 或短字元 便於擴充,例如 渠道標識 這樣在實際表記錄中字段值可以較小,對於大表可以省空間,同時提高表掃瞄的效率。2 盡量不...
資料庫索引的設計原則
索引定義 是乙個單獨的,儲存在磁碟上的資料庫結構,其包含著對資料表裡所有記錄的引用指標.為了使索引的使用效率更高,在建立索引時,必須考慮在哪些欄位上建立索引和建立什麼型別的索引。那麼索引設計原則又是怎樣的?1 選擇唯一性索引 唯一性索引的值是唯一的,可以更快速的通過該索引來確定某條記錄。例如,學生表...
資料庫設計經驗談 上
資料庫設計經驗談 上 乙個成功的管理系統,是由 50 的業務 50 的軟體 所組成,而 50 的成功軟體又有 25 的資料庫 25 的程式 所組成,資料庫設計的好壞是乙個關鍵。如果把企業的資料比做生命所必需的血液,那麼資料庫的設計就是應用中最重要的一部分。有關資料庫設計的材料汗牛充棟,大學學位課程裡...