MySQL 5.5的COMPRESSED INNODB表

MySQL 5.5的COMPRESSED INNODB表

 

從5.5開始,INNODB 引擎也可以像MYISAM引擎一樣來進行壓縮瞭。 當然壓縮後的表沒事你也別INSERT 或者 UPDATE瞭。 DELETE 就無所謂瞭,隻是MARK下,完瞭再批量刪除。 這點和BRIGHTHOUSE 引擎倒是一致。

  www.aiwalls.com  

當然瞭, 並不是所有的表都適合壓縮,然後進行讀取。 應用場景,數據的分佈,以及硬件的資源都制約瞭是否要進行壓縮。這個時候來說,最好的辦法就是進行壓力測試,看看是否適合你自己的業務。

 

下面呢,就是壓縮表對應的一些新的特性。

1. 壓縮表隻針對單表空間有效,所以設置如下參數:

innodb_file_per_table

innodb_file_format = Barracuda

2. 建表OPTIONS。  www.aiwalls.com  

   ROW_DATEFORMAT = COMPRESSED

   KEY_BLOCK_SIZE = (1,2,4,8,16.)

 

   至於到底設置多少KEY_BLOCK_SIZE大小合適,取決於要進行壓縮的表數據分佈。簡單來說,可以用同樣的數據,插入不同結構的表, 完瞭查看磁盤上表的大小就OK。

 

3. 還有一個要註意的。

   設置瞭INNODB的壓縮表,那麼你的INNODB_BUFFER_POOL_SIZE 至少應該是以前的兩倍大小。  因為在緩沖池裡面要保留兩份SIZE不同但是數據一致的PAGE。這樣,增加瞭對內存的開銷。

 

 

作者 四爺

發佈留言