溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MySQL壓縮表有什么作用

發(fā)布時間:2021-11-18 17:16:05 來源:億速云 閱讀:245 作者:iii 欄目:MySQL數(shù)據(jù)庫

本篇內(nèi)容介紹了“MySQL壓縮表有什么作用”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

MySQL的表壓縮技術(shù),可以減少數(shù)據(jù)的存儲空間、減少IO、提高吞吐率,提高CPU的利用率。

壓縮表語法:

如果使用表壓縮技術(shù),要先確認(rèn)innodb_file_per_table=1,以及innodb_file_format=Barracuda

SET GLOBAL innodb_file_per_table=1; SET GLOBAL innodb_file_format=Barracuda; CREATE TABLE t1  (wyzc INT PRIMARY KEY)   ROW_FORMAT=COMPRESSED    KEY_BLOCK_SIZE=8;        

KEY_BLOCK_SIZE參數(shù)決定表壓縮page的大小,在建表時指定,意味著innodb會將page壓縮到指定的大小,例如,如果設(shè)置key_block_size=8,則將其壓縮到8k,key_block_size的值應(yīng)根據(jù)記錄的長度來確定,如果設(shè)置的過小,可能由于一個page無法壓縮太多行而出現(xiàn)高概率的壓縮失敗,導(dǎo)致page分裂,但設(shè)置為16k則不會取得太好的壓縮效果

KEY_BLOCK_SIZE的默認(rèn)值為8K

什么使用壓縮表,這取決于你的負(fù)載和數(shù)據(jù)集合,或者特定的配置,可以考慮如下因素:

1、表中有較多重復(fù)的字符串

2、已經(jīng)在應(yīng)用中壓縮過的數(shù)據(jù),不適合存儲到壓縮表中。

3、對于如何壓縮表才算最好的,MySQL沒有明確的定義,所以壓縮后一定要通過like或order by來測試壓縮后的索引性能

4、在應(yīng)用中進(jìn)行壓縮的,不適合再進(jìn)行表壓縮

5、在表上的workload是一個關(guān)鍵性因素,如果更新主要作用在外部存儲的長字符串的非索引列上,壓縮的開銷可能是可以接受的。如果你的負(fù)載是I/O bound而非CPU bound的,壓縮可能會改善整體性能

6、壓縮可以通過消耗CPU來減少IO,如果IO是相對緊缺的資源時,會獲得更好的效果

7、選擇壓縮Page的大小應(yīng)該比記錄更大,否則可能會引起大量的壓縮失敗,通常情況下key_block_size=8是比較安全的設(shè)置

“MySQL壓縮表有什么作用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI