關於資料庫壓縮技術的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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於資料庫壓力測試的故事資料庫
- Redshift關於列的壓縮格式
- 影片壓縮技術簡介
- 關於大資料技術的一點思考大資料
- C# 關於壓縮、加密、解壓問題C#加密
- 基於圖資料庫的後設資料血緣關係分析技術研究與實踐資料庫
- android 關於Bitmap壓縮處理解析Android
- 關於大資料的建模、分析、挖掘技術應用大資料
- 關於IT,關於技術
- 騰訊基於全時態資料庫技術的資料閃回資料庫
- 陽振坤:OceanBase 資料庫七億 tpmC 的關鍵技術資料庫
- 資料治理:資料整合的關鍵技術
- Windows的壓縮資料夾(zip/cab)Windows
- 七、資料庫技術的發展及新技術資料庫
- 0910 – iPaste 搞定資料壓縮AST
- linux 下壓縮與解壓資料夾Linux
- 影片壓縮技術助力邊防影片監控
- 3.3.1 關於關閉資料庫資料庫
- 向量資料庫技術全景資料庫
- 高效的資料壓縮編碼方式 Protobuf
- 2.5.1 關於建立資料庫的子句資料庫
- 關於資料庫鎖的總結資料庫
- 大模型應用曙光 - 10X壓縮技術大模型
- 影片壓縮技術助力油田管網影片監控
- Java實現壓縮資料夾Java
- Hadoop(十九)MapReduce OutputFormat 資料壓縮HadoopORM
- 2.1 關於建立資料庫資料庫
- 關於技術的選型
- sqlserver收縮資料庫、收縮資料檔案的操作SQLServer資料庫
- 關於技術文件
- 關於技術方案
- 聊聊Oracle的分散式資料庫技術Oracle分散式資料庫
- 基於 NSData 的圖片壓縮
- SQL Server 2000/2005/2008刪除或壓縮資料庫日誌的方法SQLServer資料庫
- 強大且易於使用的壓縮和解壓縮軟體:Keka for MacMac
- QEMU-KVM中的多執行緒壓縮遷移技術執行緒
- 解析ws訂閱返回的GZIP 壓縮資料
- 怎麼把資料夾壓縮成壓縮包發給微信好友