文档章节

MySQL压缩表

我就叫你女王吧
 我就叫你女王吧
发布于 2016/04/19 17:07
字数 505
阅读 9
收藏 0

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精彩内容 请关注我!


© 著作权归作者所有

我就叫你女王吧
粉丝 3
博文 34
码字总数 25430
作品 0
海淀
私信 提问
MySQL命令行工具各功能说明(转)

MySQL 服务器端使用工具程序 - SQL 后台程序(即 MySQL 服务器进程)。该程序必须启动运行,才能连接服务器来访问数据库。 - 服务器启动脚本,可以通过 mysqldsafe 来启动 mysqld 服务器。m...

easonjim
2018/05/15
0
0
mysql数据库备份和还原常用的命令

备份MySQL数据库的命令 mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql 备份MySQL数据库为带删除表的格式 备份MySQL数据库为带删除表的格式,能够让该备份覆盖已...

Lofo
2014/12/11
0
0
Mysql数据库备份和还原常用的命令

备份MySQL数据库的命令 mysqldump -hhostname -uusername -ppassword databasename backupfile.sql 备份MySQL数据库为带删除表的格式 备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有...

wilelm
2013/05/30
0
0
14.4.9 Innodb通用表空间

一. 通用表空间简介 通用表空间是innodb表空间新类型,5.7.6引入通用表空间提供以下功能: 类似系统表空间,是共享表空间,能存储多个表的数据 相比独立表空间,通用表空间能减少内存使用(对...

AnthonyYau
2015/12/31
40
0
MySQL常用的七种表类型(转)

其实MySQL提供的表类型截至到今天已经有13种,各有各的好处,但是民间流传的常用的应该是7种,如果再细化出来,基本上就只有两种:InnoDB、MyIASM两种。 MySQL作为当前最为流行的免费数据库服...

easonjim
2017/10/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

4.01、Linux异常

1、无法连接虚拟设备ide1:0,因为主机上没有响应的设备 解决方法:找到“虚拟机” —— 打开“虚拟机设置” —— 单击“CD/DVD(IDE)”,右侧选中“使用ISO映像文件”,然后选中自己的镜像,重启...

静以修身2025
25分钟前
1
0
不允许有匹配 "[xX][mM][lL]" 的处理指令目标

Bug解决方案:org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 8; 不允许有匹配 "[xX][mM][lL]" 的处理指令目标 Caused by: org.xml.sax.SAXParseException; lineNumber: 1; c......

我叫小糖主
28分钟前
1
0
Mysql InnoDB 行锁和表锁介绍

mysql 的 InnoDB引擎支持行锁,与Oracle不同,mysql的行锁是通过索引加载的,即是行锁是加在索引响应的行上的,要是对应的SQL语句没有走索引,则会全表扫描,行锁则无法实现,取而代之的是表...

嘴角轻扬30
28分钟前
2
0
springboot+jpa 错误信息org.springframework.beans.factory.BeanCreationException

报错信息 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/a......

冥焱
46分钟前
1
0
威胁快报|新兴挖矿团伙借助shodan作恶,非web应用安全再鸣警钟

近日,阿里云安全发现了一个使用未授权访问漏洞部署恶意Docker镜像进行挖矿的僵尸网络团伙。我们给这一团伙取名为Xulu,因为该团伙使用这个字符串作为挖矿时的用户名。 Xulu并不是第一个攻击...

迷你芊宝宝
53分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部