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