新聞動态
物(wù)理結構設計是利用已确定的邏輯數據結構以及DBMS提供的方法、技術、以較優的存儲結構、數據存取路徑、合理的數據存儲位置以及存儲分(fēn)配,設計出一(yī)個高效的、可實現的物(wù)理數據庫結構。由于數據庫的物(wù)理結構依賴于給定的計算機軟件及硬件環境,依賴于所選用的DBMS。因此,設計數據庫的物(wù)理結構應充分(fēn)考慮數據庫的物(wù)理環境,例如數據庫存取設備、存儲組織和存取方法,數據庫管理系統及其他輔助性軟件工(gōng)具等通常關系數據庫的物(wù)理結構設計主要包括以下(xià)内容:
1) 确定數據的存取方法
存取方法是快速存取數據庫中(zhōng)的數據的技術,數據庫管理系統一(yī)般都提供多種存取方法,具體(tǐ)采取哪種存取方法由系統根據數據的存儲方式來決定,用戶一(yī)般不能幹預。
用戶通常可以利用建立索引的方法來加快數據的查詢效率。如果建立了索引,系統就可以使用索引查找方法,索引方法實際上就是根據應用要求确定在關系的哪個屬性或哪些屬性上建立索引,确定在哪此屬性上建立複合索引,哪些索引要設計爲唯一(yī)索引以及哪些索31要設計爲聚簇索引,聚簇索引是将索引在物(wù)理 上有序排列後得到的索引。需要注意的是,索引,般可以提高查詢性能,但會降低數據修改性能。因爲在修改數據時,系統要同時對索引進行維護,使索引 與數據保持 一(yī)緻。維護索引要占用相當多的時間,而且存放(fàng)索引信息也會占用空間資(zī)源 因此在決定是否建立索引時,要權衡數據庫的操作,姐果查詢多,而且 對查詢的性能要求比較高,則uf以考慮多建一(yī)些索引。奻果數據更改多,并且對更改的效率要求比較高,則應考慮少建.些索引,建立索引的原則妲下(xià),滿足以下(xià)條件之 -的,可以在有關屬性上建立索引:
①主鍵和外(wài)鍵上通常建立索引。
②如果一(yī)個屬性經常在查詢條件中(zhōng)出現,則考慮在這個屬性 上建立索引。
③如果一(yī)個屬性經常作爲最大(dà)值和最小(xiǎo)值等聚集函數的參數,則考慮在這個屬性上建立索引。
④如果一(yī)個屬性經常在連接操作的連接條件中(zhōng)出現,則考慮在這個屬性上建立索引。
⑤對于以讀爲主或者隻讀的關系表,隻要需要且存儲空間允許,可以多建索引滿足以下(xià)條件之一(yī)的,不宜建立索引:
①不出現或者很少出現在查詢條件中(zhōng)的屬性。
②屬性值是可能取值的個數很少的屬性。
③屬性值升布嚴重不均的屬性。
④經常更新的屬性和表。因爲在更新屬性值時,必須對相應的索引作出修改,這就使系統爲維護索引付出較大(dà)的代價。
⑤屬性值過長,在過長的屬性 上建立索引,索引所占的存儲空間比較大(dà),而且索引的級數随之增加,将會帶來許多不便。
⑥太小(xiǎo)的表不值得使用索引。
2) 确定數據的存儲結構
物(wù)理結構設計中(zhōng)一(yī)個重要的考慮因素就是确定數據記錄的存儲方式。常用的存儲方式有 :
①順序存儲,這種存儲方式的平均查找次數。
②散列存儲。這種存儲方式的平均查找次數由散列算法決定。
③聚簇存儲。這種存儲方式是指将不同類型的記錄外(wài)配到相同的物(wù)理區域中(zhōng),充分(fēn)利用物(wù)理順序性的優點,提高數據訪問速度。即将經常在一(yī)起使用的記錄聚簇在一(yī)起,以減少物(wù)理輸入/輸出次數。
用戶通常可通過建立索引來改變數據的存儲方式,但在其他情況下(xià),數據是采用順序存儲、散列存儲還是其他的存儲方式是由系統根據數據的具體(tǐ)情況來決定的。一(yī)般系統都會 爲數據選擇一(yī)種最合适的存儲方式。
确定數據的存放(fàng)位置和存儲結構要綜合考慮數據的存取時間、存儲空間利用率以及維護代價等幾個方面的影響。
确定數據的存放(fàng)位置時,爲了提高系統的性能,應根據應用情況将數據的易變部介和穩定部牙、經常存取部分(fēn)和不經常存取的部分(fēn)外(wài)開(kāi)存放(fàng),放(fàng)在不同的關系表中(zhōng)或者放(fàng)在不同的外(wài)存空間,通常,對于常用的數據應保存在高性能的外(wài)存上,不常用的數據可保存在低性能的外(wài)存上。
網站建設由于各個系統所能提供的對于數據物(wù)理安排的手段和方法差異很大(dà),因此設計人員(yuán)必須仔細了解給定的DBMS在這方面能夠提供哪些方法,再針對應用環境的要求進行合理的物(wù)理安排。
在确定了數據的存放(fàng)位置後,還要确定系統的配置參數。通常,DBMS會提供一(yī)些系統配置參數、存儲分(fēn)配參數供設計人員(yuán)對數據庫進行優化,爲了系統的性能,在進行物(wù)理設計時需要對這些參數重新賦值。
上一(yī)篇: 網站優化中(zhōng)的内部鏈接
下(xià)一(yī)篇: 數據庫應該如何維護?