MySQL 8.4 發行說明
範例 17.1 使用壓縮資訊綱要表格
以下是包含壓縮表格的資料庫範例輸出(請參閱第 17.9 節「InnoDB 表格和頁面壓縮」、INNODB_CMP
、INNODB_CMP_PER_INDEX
和 INNODB_CMPMEM
)。
下表顯示在輕量級工作負載下INFORMATION_SCHEMA.INNODB_CMP
的內容。緩衝池中包含的唯一壓縮頁面大小為 8K。由於 COMPRESS_TIME
和 UNCOMPRESS_TIME
欄位為零,因此自統計資料重設以來,壓縮或解壓縮頁面所花費的時間不到一秒。
頁面大小 | 壓縮操作 | 壓縮操作完成 | 壓縮時間 | 解壓縮操作 | 解壓縮時間 |
---|---|---|---|---|---|
1024 | 0 | 0 | 0 | 0 | 0 |
2048 | 0 | 0 | 0 | 0 | 0 |
4096 | 0 | 0 | 0 | 0 | 0 |
8192 | 1048 | 921 | 0 | 61 | 0 |
16384 | 0 | 0 | 0 | 0 | 0 |
根據INNODB_CMPMEM
,緩衝池中有 6169 個壓縮的 8KB 頁面。唯一其他配置的區塊大小為 64 個位元組。INNODB_CMPMEM
中最小的 PAGE_SIZE
用於那些在緩衝池中沒有未壓縮頁面的壓縮頁面的區塊描述符。我們看到有 5910 個這樣的頁面。間接地,我們看到 259 (6169-5910) 個壓縮頁面也以未壓縮形式存在於緩衝池中。
下表顯示在輕量級工作負載下INFORMATION_SCHEMA.INNODB_CMPMEM
的內容。由於壓縮頁面的記憶體配置器分散,某些記憶體無法使用:SUM(PAGE_SIZE*PAGES_FREE)=6784
。這是因為從主緩衝池分配的 16K 區塊開始,使用好友分配系統,較小的記憶體配置請求會透過分割較大的區塊來滿足。由於某些已配置的區塊已重新定位(複製)以形成較大的相鄰可用區塊,因此碎片化程度很低。複製 SUM(PAGE_SIZE*RELOCATION_OPS)
個位元組所花費的時間不到一秒 (SUM(RELOCATION_TIME)=0)
。