MySQL5.7 InnoDB Page Compression
1、介紹
mysql5.7中,innodb頁結構增加了一個型別FIL_PAGE_COMPRESSED,用來完成Transparent page compression 特性
2、說明
1)壓縮內容包括:除去FIL_PAGE_DATA外所有資料,包括tail
2)壓縮後的內容+FIL_PAGE_DATA會以block_size對齊,並將空洞清0。意味著將16K壓縮到9K,也需要12KB的資料,因此將block_size設小點,這樣的場景將受益,可以
減少空間浪費。
3)FIL_PAGE_VERSION內容存1;FIL_PAGE_ALGORITHM_V1指哪個壓縮演算法:ZLIB、LZ4
FIL_PAGE_ORIGINAL_TYPE_V1:原始頁型別;
FIL_PAGE_ORIGINAL_SIZE_V1:原始頁需要壓縮的內容大小
FIL_PAGE_COMPRESS_SIZE_V1:內容壓縮後大小
4)目前支援2種壓縮演算法:zlib和lz4,可以方便擴充套件新的演算法
5)壓縮只是在持久化磁碟的時候壓縮,記憶體中的頁仍然是原始的樣子
3、用法
表定義:
可以透過CREATE TABLE、ALTER TABLE來定義壓縮表:
create table t1(i int,b blob) compression='zlib';
也可以選擇compression='lz4'來指定lz4壓縮演算法,注意compression屬性的ALTER是立即生效,在做完ALTER COMPRESSION屬性操作後,需要做一次表的rebuild,例如optimize table操作,才能對已有的資料做punch hole。compression屬性儲存在frm檔案中,以2個位元組儲存字串長度,隨後儲存compression屬性定義字串,這也是一個作業系統降級的風險點。
4、程式碼分析
點選(此處)摺疊或開啟
5、參考
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31493717/viewspace-2148515/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL 8.0 Reference Manual(讀書筆記78節-- InnoDB Table and Page Compression (1))MySql筆記
- MySQL 8.0 Reference Manual(讀書筆記79節-- InnoDB Table and Page Compression (2))MySql筆記
- InnoDB: Error: space id and page n:o stored in the page?Error
- innblock 工具| InnoDB page觀察利器BloC
- MySQL5.7 InnoDB線上DDL操作MySql
- InnoDB從內分析之Page(二)
- InnoDB:Failingassertion:page_get_n_recs(page)>1AI
- MySQL:Innodb page clean 執行緒 (二) 解析MySql執行緒
- 解決mysql innodb page corrupt一例MySql
- 遭遇 bug InnoDB: Failing assertion: page_get_n_recs(page) > 1AI
- MySQL:Innodb page clean 執行緒 (一) 基礎MySql執行緒
- innodb page重組空間壓縮函式(btr_page_reorganize_low)註釋函式
- MySQL原理 - InnoDB引擎 - 行記錄儲存 - Off-page 列MySql
- Oracle Database Compression 1 - Basic CompressionOracleDatabase
- Unused Block Compression和Null Block CompressionBloCNull
- 關於MYSQL INNODB index page header學習和實驗總結MySqlIndexHeader
- Oracle Database Compression 3 - Hybrid Columnar CompressionOracleDatabase
- Oracle Database Compression 2 - Advanced/OLTP CompressionOracleDatabase
- MySQL5.7 線上調整Innodb_Buffer_Pool_size不用重啟mysql程式薦MySql
- MySQL5.7在InnoDB層做的一些效能優化和新的特性MySql優化
- Advanced Index CompressionIndex
- Encoder Data compression
- mysql 5.7 Transparent PageIO CompressionMySql
- MySQL 效能:在MySQL5.7中使用InnoDB Memcached 外掛實現每秒100萬QPSMySql
- Centos7.5基於MySQL5.7的 InnoDB Cluster 多節點高可用叢集環境部署記錄CentOSMySql
- LZ4 compression algorithm on FPGAGoFPGA
- What’s new in Cassandra 1.0: Compression
- MySQL data pageMySql
- create-a-page
- Mendix Page Template
- Oracle Index Key Compression索引壓縮OracleIndex索引
- Availability and Compression of Free Space in a Data BlockAIBloC
- MODEL COMPRESSION VIA DISTILLATION AND QUANTIZATION翻譯
- NGINX error_pageNginxError
- Oracle 11g Advanced Compression(上)Oracle
- Oracle 11g Advanced Compression(下)Oracle
- Enhanced Invertible Encoding for Learned Image CompressionEncoding
- MySQL5.7 多例項MySql