設計高效數(shù)據(jù)庫的五大原則
高效數(shù)據(jù)庫設計的五大原則:
1、讀寫分離原則。這里的讀寫分離是指,讀多寫少的字段與寫多讀少的字段分開存放于不同的表。按照磁盤的工作原理,磁盤是以扇區(qū)為單位存放數(shù)據(jù)的,并且有寫緩沖、排隊、延遲寫入的特點。數(shù)據(jù)庫是以記錄為單位的,每次訪問,總是將整行記錄讀入緩沖區(qū),再依命令所需的字段從中篩選數(shù)據(jù),組成返回的記錄行。讀寫分離原則能顯著改善磁盤和記錄的緩存性能。
2、高頻與低頻字段分離原則。高頻字段是指訪問較頻繁的字段,低頻字段是指訪問頻度較低的字段。不管是高頻字段還是低頻字段,數(shù)據(jù)庫總是讀取整行記錄,然后篩選。命令中不訪問到的字段,同樣要先讀入內(nèi)存。高低頻分開存放,能減少記錄行讀入的字節(jié)數(shù)(寫入也一樣),減少不必要的讀寫。如果部署分布式數(shù)據(jù)庫,按這個原則作垂直劃分,其效果比單機數(shù)據(jù)庫的效果更明顯。
3、為最常用的字段建立索引。當命令中涉及的字段都在某個索引中時,命令執(zhí)行過程中不需要訪問表數(shù)據(jù),僅從索引中獲得所需的字段值,組成記錄返回。
4、為經(jīng)常搜索的字段建立索引。當要搜索的字段都存在某個索引中時,索引過程只需在索引中作匹配運算,僅當匹配到某個記錄,并且要返回的字段不在索引中時,才從表數(shù)據(jù)中取回這行記錄。
5、主鍵越短越好,并且***是整型。索引是以區(qū)為單位存放的,類似于磁盤的扇區(qū)。索引樹節(jié)點也是以區(qū)為單位的。索引的大小,與索引項的大小成正比。索引項的字節(jié)數(shù)越少越好。索引項總是定長的,如果索引字段包含可變長字段(varchar,nvarchar之類的),那么索引該字段的字節(jié)數(shù)是這個字段的***可能字節(jié)數(shù)。另一方面,在IA-32架構的CPU中,讀寫一個32位(4字節(jié))整型值的速度是讀取一個字節(jié)的2倍!如果讀取一個100字節(jié)的字符串,耗時是讀一個32位整型的200倍。可見,主鍵的選型,對檢索記錄的性能有非常大的影響。
總結:在實際的數(shù)據(jù)庫設計中,我們應該根據(jù)具體的情況靈活地將上面的原則應用到設計過程中,切不可生搬硬套,以免降低數(shù)據(jù)庫的效率。
【編輯推薦】























