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