加入收藏 | 设为首页 | 会员中心 | 我要投稿 徐州站长网 (https://www.0516zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL压缩表有哪些作用

发布时间:2021-12-17 09:39:07 所属栏目:MySql教程 来源:互联网
导读:本篇内容介绍了MySQL压缩表有什么作用的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! MySQL的表压缩技术,可以减少数据的存储空间、减少IO、提高吞
本篇内容介绍了“MySQL压缩表有什么作用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
 
MySQL的表压缩技术,可以减少数据的存储空间、减少IO、提高吞吐率,提高CPU的利用率。
 
压缩表语法:
 
如果使用表压缩技术,要先确认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参数决定表压缩page的大小,在建表时指定,意味着innodb会将page压缩到指定的大小,例如,如果设置key_block_size=8,则将其压缩到8k,key_block_size的值应根据记录的长度来确定,如果设置的过小,可能由于一个page无法压缩太多行而出现高概率的压缩失败,导致page分裂,但设置为16k则不会取得太好的压缩效果
 
KEY_BLOCK_SIZE的默认值为8K
 
什么使用压缩表,这取决于你的负载和数据集合,或者特定的配置,可以考虑如下因素:
 
1、表中有较多重复的字符串
 
2、已经在应用中压缩过的数据,不适合存储到压缩表中。
 
3、对于如何压缩表才算最好的,MySQL没有明确的定义,所以压缩后一定要通过like或order by来测试压缩后的索引性能
 
4、在应用中进行压缩的,不适合再进行表压缩
 
5、在表上的workload是一个关键性因素,如果更新主要作用在外部存储的长字符串的非索引列上,压缩的开销可能是可以接受的。如果你的负载是I/O bound而非CPU bound的,压缩可能会改善整体性能
 
6、压缩可以通过消耗CPU来减少IO,如果IO是相对紧缺的资源时,会获得更好的效果
 
7、选择压缩Page的大小应该比记录更大,否则可能会引起大量的压缩失败,通常情况下key_block_size=8是比较安全的设置
 
“MySQL压缩表有什么作用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

(编辑:徐州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读