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。這樣,增加瞭對內存的開銷。
作者 四爺