關於資料庫壓縮技術的Survey
昨天給團隊內的小夥伴做了一個關於資料庫壓縮技術的Survey,現將其中可以公開的部分分享出來。資料庫壓縮技術目前已經成為了各種資料庫的標配技術,這裡麵包括三大商業資料庫、各種專業的分新型資料庫,也包括各種開源資料庫和NoSQL資料庫。
到了今天,資料庫壓縮技術的運用已經不單純是為了節省儲存成本,更多的時候,是為了提供更高的計算密度(比如容量受限的SSD),以及提供更高的查詢效能(OLAP)。對於壓縮的有利因素,一些公共的認知是:列比行更有利於壓縮,更大的輸入、有序的輸入更有利於壓縮。
不同資料庫對於壓縮粒度的選擇也千差萬別,大多數資料庫使用塊作為壓縮的基本單位,少數資料庫會提供欄位級的壓縮,但也有一些資料庫使用表、甚至整個庫作為壓縮的基本單位。很明顯,壓縮粒度越粗,對系統的可用性影響越大,表級以上的壓縮粒度通常不再被認為是資料庫本身支援了壓縮技術。
除了壓縮粒度之外,儲存格式的選擇對應用場景也比較重要,比如行存適合於寬查詢(訪問少數行和多數列),面向投影最佳化(OLTP);而列存適合於窄查詢(訪問多數行和少數列),面向Filter最佳化(OLAP);兩者的混合體是所謂的塊內按列壓縮,塊間按行組織,即行列混合儲存(PAX),典型的代表是ORACLE EXADA他的HCC。
雖然是一種標配,但不同資料庫對於資料庫壓縮技術的實現幾乎各不相同,但總體上可以分為三個層次:1)Packing,比如消除小整數的前端0,消除CHAR的尾部空格等,這類壓縮技術通常發生在OLTP系統中,粒度通常為欄位級別,系統通常會提供正常和緊縮的兩種儲存格式;2)Encoding,也就是規則壓縮,典型的方法包括字典、RLE、字首、差值等,相關技術的細節,在參考資料裡有詳細的論述;3)Compression,也就是後端壓縮,即直接使用通用的壓縮演算法,比如Snappy、Zlib、BZip等。
所有商業資料庫和專業的分析型資料庫都會引入不同的Encoding方法,而不會直接使用Compression。道理很簡單,首先,Encode比Compression更懂資料,因為Compression總是把資料看成連續的位元組流,而Encoding知道每個欄位的邊界、型別和值域特徵,所以Encoding+Compression會比僅使用Compression能提供更高的壓縮率;第二,Encoding會提供更高的解碼速度,因為哪怕是最快的Snappy,也需要把資料完全解壓後才可查詢,而大多數Encoding方法不需要解碼即可查詢;最後,Encoding會提供合理的編碼速度,雖然比不過Snappy,但會遠超Zlib、Bzip這樣的對手。
下面給出一個資料庫壓縮技術的Survey:
以下給出一些資料庫壓縮技術有用的連結:
原文連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2334/viewspace-2805609/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料庫壓縮技術探索資料庫
- SQL SERVER資料壓縮技術引領資料庫新潮流SQLServer資料庫
- oracle壓縮技術Oracle
- 表壓縮技術
- 關於資料庫壓力測試的故事資料庫
- oracle 壓縮技術(compress)Oracle
- 影片壓縮技術簡介
- VB環境下壓縮資料流播放技術(1) (轉)
- VB環境下壓縮資料流播放技術(2) (轉)
- 在ASP中壓縮ACCESS資料庫資料庫
- 11g 資料庫rman壓縮備份壓縮率測試資料庫
- Oracle壓縮黑科技(二)—壓縮資料的修改Oracle
- 關於大資料技術的一點思考大資料
- 關於SQL 2008資料庫壓縮後收縮(database shrink)的測試實驗和效能比較SQL資料庫Database
- 關於Java的GZIP壓縮與.net C#的GZIP壓縮的差異JavaC#
- Oracle資料壓縮Oracle
- C# 關於壓縮、加密、解壓問題C#加密
- 更快更省的上網方式 小米在MIUI 7 整合 Opera 資料壓縮技術UI
- mysql資料庫xtrabackup壓縮備份測試MySql資料庫
- 利用ADO壓縮Access資料庫程式碼資料庫
- Teradata資料壓縮
- 關於IT,關於技術
- 騰訊基於全時態資料庫技術的資料閃回資料庫
- 深度學習之圖片壓縮技術深度學習
- 深度學習影象視訊壓縮技術深度學習
- HTTP/2 頭部壓縮技術介紹HTTP
- 基於圖資料庫的後設資料血緣關係分析技術研究與實踐資料庫
- 關於大資料的建模、分析、挖掘技術應用大資料
- 關於UNIX及類UNIX下壓縮和解壓的命令簡介
- 大資料的關鍵技術大資料
- Oracle 資料庫縮寫術語整理Oracle資料庫
- android 關於Bitmap壓縮處理解析Android
- RMAN關於並行機制的壓縮備份並行
- 關於收縮資料檔案的嘗試
- 資料治理:資料整合的關鍵技術
- 資料壓縮簡史 (轉)
- 【表壓縮】使用表壓縮技術將表所佔用空間降低到最小
- Windows的壓縮資料夾(zip/cab)Windows