mysql 案例 ~ 瘦身mysql系列(1)

一 简介:这一系列我们要进行如何瘦身mysql

二 目的:通过提高CPU利用率和节约成本,降低数据库容量及I/O负载,从而使数据吞吐率得到显著提高

三 方法:

利用innodb的COMPRESSED

四 如何开启

第一,mysql的版本需要大于5.5,mysql系统表是无法进行压缩的 
  第二,设置innodb_file_format=barracuda 
  第三,create table或者alter talble 增加 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;(默认的key_block_size=16)

五 对于现有的表如何进行转化压缩

alter table test KEY_BLOCK_SIZE=8; 默认是16,数值越小压缩率越高,但是解压所消耗的资源率越高

六 目标:

1 针对 数据短时间用不到而且需要保留的大表,可以进行压缩和处理->冷表

2 针对 只有单一insert和select业务的大表,考虑进行压缩和处理

3 针对 频繁业务的大表,不推荐进行压缩处理,可能会影响并发

七  相关参数

innodb_compression_level:决定压缩程度的参数 如果你设置比较大,那么压缩比较多,耗费的CPU资源也较多;相反,如果设置较小的值,那么CPU占用少。默认值6,可以设置0-9
innodb_compression_failure_threshold_pct:默认值5,范围0到100.设置中断点避免高昂的压缩失败率。
innodb_compression_pad_pct_max:指定在每个压缩页面可以作为空闲空间的最大比例,该参数仅仅应用在设置了innodb_compression_failure_threshold_pct不为零情况下,并且压缩失败率通过了中断点。默认值50,可以设置范围是0到75.

八 注意事项

1 5.6 默认是不支持压缩的 最好在配置文件和全局变量都添加 innodb_file_format=barracuda

2 Barracuda兼容Antelope格式,所以不必担心修改后会引起以前的表相关问题

3 修改完后show create table 会发现出现一行KEY_BLOCK_SIZE

4 压缩效果并非对所有表都很明显,需要注意,关于blob varchar大于255 TEXT等大字段类型压缩能力很差

上一篇:怎样从官网下载Spring的jar包


下一篇:分布式监控系统Zabbix-3.0.3-完整安装记录(1)