MySQL 5.5 的COMPRESSED INNODB 表 |
發(fā)布時(shí)間: 2012/9/5 17:16:38 |
MySQL從5.5開始,INNODB 引擎也可以像MYISAM引擎一樣來進(jìn)行壓縮了。 當(dāng)然壓縮后的表沒事你也別INSERT 或者 UPDATE了。 DELETE 就無所謂了,只是MARK下,完了再批量刪除。 這點(diǎn)和BRIGHTHOUSE 引擎倒是一致。 當(dāng)然了, 并不是所有的表都適合壓縮,然后進(jìn)行讀取。 應(yīng)用場(chǎng)景,數(shù)據(jù)的分布,以及硬件的資源都制約了是否要進(jìn)行壓縮。這個(gè)時(shí)候來說,最好的辦法就是進(jìn)行壓力測(cè)試,看看是否適合你自己的業(yè)務(wù)。-
1. 壓縮表只針對(duì)單表空間有效,所以設(shè)置如下參數(shù): innodb_file_per_table innodb_file_format = Barracuda 2. 建表OPTIONS。 ROW_DATEFORMAT = COMPRESSED KEY_BLOCK_SIZE = (1,2,4,8,16.) 至于到底設(shè)置多少KEY_BLOCK_SIZE大小合適,取決于要進(jìn)行壓縮的表數(shù)據(jù)分布。簡(jiǎn)單來說,可以用同樣的數(shù)據(jù),插入不同結(jié)構(gòu)的表, 完了查看磁盤上表的大小就OK。 3. 還有一個(gè)要注意的。 設(shè)置了INNODB的壓縮表,那么你的INNODB_BUFFER_POOL_SIZE 至少應(yīng)該是以前的兩倍大小。 因?yàn)樵诰彌_池里面要保留兩份SIZE不同但是數(shù)據(jù)一致的PAGE。這樣,增加了對(duì)內(nèi)存的開銷。
本文出自:億恩科技【mszdt.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |