您好,登錄后才能下訂單哦!
本篇內容主要講解“DSM的優缺點是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“DSM的優缺點是什么”吧!
NSM vs DSM
NSM:N元存儲模型,也就是行式存儲模型。數據的物理結構和他們的邏輯結構是一樣的。磁盤是由一個一個block組成的,因此連續的數據也分在了連續的block里。邏輯和物理的對應關系如下圖:
DSM:分解的存儲模型,其實是關系表的一種設計方式,即每一行記錄都分解成二元關系表,每個二元表對應一個屬性加一個ID主鍵,這樣兩張表還可以 Join 起來。邏輯和物理的對應關系如下圖:
DSM的結構優勢
避免空值:分解之后,就不用屬性之間對齊了,對于稀疏數據來說,能有效避免空值的存儲,節省空間。
減少數據冗余:能讓邏輯清晰,即范式化。在NSM中,如果不對照兩個表的SS#字段,則不能區分 Nicole 是重名的還是一個人,存在一張表里可以清楚的看到 Nicole 就是一個人。
Differential File
首先介紹一個概念,叫 Differential File(差異文件,參考《Differential Files: Their Application to the Maintenance of Large Databases》)。類似圖書后邊的勘誤表,和 LSM 的概念差不多,主要為了減輕數據更新負載。當更新一個記錄(一行數據)時,不直接修改原始記錄,而是將整個新的記錄寫在一個 Differential File中,這個文件的格式和原表一樣,每修改一個記錄這里就多一個記錄,當這個文件大小超過一定閾值,就合并兩個文件。
簡單介紹一下 Differential File的優勢:
(1) 在沒有Differential File 時,要想防止磁盤損壞導致數據丟失,需要定期全量備份數據庫,而有了 Differential File,只需要一次全量,后邊只增量備份 Differential File 就可以了。
(2)每次定期備份的時候,需要數據庫狀態一致,即備份時拒絕修改。通過增量備份很小的 Differential File,則可以避免這個限制。解法是在備份時維護一個 differential-differential file,即在當前備份狀態(原文件-差異文件)上的差異文件。但是這樣搞有個前提:Differential file 比較小,大了就傻逼了。
(3)方便測試,一份不可修改的數據,兩份差異文件,可以同時運行兩個系統,每個系統維護一份數據和自己的差異文件。一個生產系統,一個測試系統,可以隨時debug。
(4)由于原始文件不可修改,支持簡單的并發訪問。
其實 Differential File 到底是存一整行數據還是僅僅存儲被修改的屬性,僅僅是個實現問題,這里采用了完整數據。
DSM的更新查詢優勢
差異文件主要是記錄數據庫的更新的,在存儲完整記錄的配置下,NSM和DSM有啥區別呢?顯然DSM需要記錄的信息少啊!如下圖:
由于DSM模型中每個表都只有兩列,因此在其上構建索引和查詢引擎也很簡單。
DSM的缺點
可以看到,NSM 中 ID 只用存一次,但是 DSM 中 ID 需要存很多次。會占用更多磁盤空間。
在更新時,每修改或增加一條 NSM 中的記錄,僅需要更新一個完整記錄,但是 DSM 中需要為每個二元屬性表修改一次記錄。如果在表上構建索引,索引的操作也更多。
這些缺點基本是和存儲特點綁定的。
到此,相信大家對“DSM的優缺點是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。