需求:最近有个插入量比较大的应用需要上,每天的插入量在1亿左右,同时会有较少的查询,表的单行长度在0.5k,就数据而言每天有近50G数据,由于每天写一张新表,保留30天的数据,一个月下来也要1.5T,所以考虑了mysql采用mysql

innodb plugin的压缩存储,在官方文档中这样描述了mysql的compress特性:

The ability to compress user data is an important new capability of

the InnoDB Plugin. Compressed tables reduce the size of the database on

disk, resulting in fewer reads and writes needed to access the user

data. For many InnoDB workloads and many typical user tables (especially

with read-intensive applications where sufficient memory is available

to keep frequently-used data in memory), compression not only

significantly reduces the storage required for the database, but also

improves throughput by reducing the I/O workload, at a modest cost in

processing overhead. The storage cost savings can be important, but the

reduction in I/O costs can be even more valuable.

从文档中可以看到compress最大的优势不仅在于空间的压缩上,同时可以降低i/o的请求,特别在read-intensive的场景下[注意这里是在内存能够容纳所读取的数据]非常有效。

配置:

create table compress_test() ENGINE=InnoDB DEFAULT CHARSET=gbk ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;

可以看到比我们平常的建表的参数中多加了ROW_FORMAT=COMPRESSED和

KEY_BLOCK_SIZE=8两个参数,需要注意的是:Available only with

innodb_file_format=Barracuda , Compresses the table and indexes using

zlib to default compressed page size of 8K

bytes;只有在文件格式在Barracuda时候才能使用compress特性,那么就需要配置innodb_file_per_table和innodb_file_format两个参数;

默认情况下,mysql会将每个页压缩为8k,但也可以压缩到1KB, 2KB, 4KB, 8KB,

16KB,普通innodb的page大小为16k,所以设置为key_block_size=16k不会收到很大的压缩效果,但是对于一些blob,txt大字段来说通常会很有用;

mysql的压缩不仅对于表的数据有效,对索引页(聚簇和非聚簇)同样压缩到key_block_size大小,但是我们却不可以在创建索引的时候指定该索引的压缩,而只能通过表的压缩来实现索引的压缩;

root@test 02:28:42>show variables like '%innodb_file_per_table%';

Variable_name | Value |

innodb_file_per_table | ON |

root@test 02:30:43>show variables like '%innodb_file_format%';

Variable_name | Value |

innodb_file_format | Barracuda |

| innodb_file_format_check | Barracuda |

mysql的压缩特性-需求的更多相关文章

  1. CompressFilterAttribute 文件压缩特性

    /// <summary> /// 文件压缩特性 /// </summary> public class CompressFilterAttribute : ActionFil ...

  2. Mysql InnoDB三大特性-- change buffer

    Mysql InnoDB三大特性-- change buffer

  3. Mysql InnoDB三大特性-- 自适应hash index

    Mysql InnoDB三大特性-- 自适应hash index

  4. mysql无法压缩存储表情

    原文链接:https://www.cnblogs.com/SimonHu1993/p/7573868.html mysql无法压缩存储表情compress(str),就选择过滤把emoji表情符号替换 ...

  5. 个人MySQL的事务特性原理学习笔记总结

    目录 个人MySQL的事务特性原理笔记总结 一.基础概念 2. 事务控制语句 3. 事务特性 二.原子性 1. 原子性定义 2. 实现 三.持久性 1. 定义 2. 实现 3. redo log存在的 ...

  6. TokuDB · 引擎特性 · HybridDB for MySQL高压缩引擎TokuDB 揭秘

    原文出处:阿里云RDS-数据库内核组 HybridDB for MySQL(原名petadata)是面向在线事务(OLTP)和在线分析(OLAP)混合场景的关系型数据库.HybridDB采用一份数据存 ...

  7. MySql存储引擎特性对比

    下表显示了各种存储引擎的特性: 其中最常见的两种存储引擎是MyISAM和InnoDB 刚接触MySQL的时候可能会有些惊讶,竟然有不支持事务的存储引擎,学过关系型数据库理论的人都知道,事务是关系型数据 ...

  8. Mysql存储引擎特性总结

    几个常用存储引擎的特点 下面我们重点介绍几种常用的存储引擎并对比各个存储引擎之间的区别和推荐使用方式. 特点 Myisam BDB Memory InnoDB Archive 存储限制 没有 没有 有 ...

  9. 【特性】MySQL 8 新特性

    MySQL 8.0 正式版 8.0.11 已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能! 注意:从 MySQL 5.7 升级到 MySQL 8 ...

随机推荐

  1. PAT (Basic Level) Practise (中文) 1023. 组个最小数 (20)

    1023. 组个最小数 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CAO, Peng 给定数字0-9各若干个.你可以以 ...

  2. 无插件VIM编程技巧(网摘)

    无插件VIM编程技巧 原文出处:[陈皓 coolshell] 相信大家看过<简明Vim教程>也玩了<Vim大冒险>的游戏了,相信大家对Vim都有一个好的入门了.我在这里把我日常 ...

  3. Centos 7.3下图文安装SQL Server

    以后工作都将与Linux打交道,对于.net忠实粉丝现在进入Linux还算幸运,因为.net core和asp.net core都已经跨平台了.今天没事想试试传说中的Linux Sql server是 ...

  4. Mysql报错注入原理分析(count()、rand()、group by)

    Mysql报错注入原理分析(count().rand().group by) 0x00 疑问 一直在用mysql数据库报错注入方法,但为何会报错? 百度谷歌知乎了一番,发现大家都是把官网的结论发一下截 ...

  5. Go语言中函数的实现

    Go 语言函数 函数是基本的代码块,用于执行一个任务. Go 语言最少有个 main() 函数. 你可以通过函数来划分不同功能,逻辑上每个函数执行的是指定的任务. 函数声明告诉了编译器函数的名称,返回 ...

  6. 【Java学习笔记之二十二】解析接口在Java继承中的用法及实例分析

    一.定义 Java接口(Interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为( ...

  7. 2017年最好的JavaScript库

    iTour 它让你有机会告诉你任何接口的功能.此外,这个插件可以执行教学,显示任务的功能,提示你做什么和跟进任务的执行.这是他所有类似软件中最灵活和功能最强的插件. Popper.js 这是屏幕上的一 ...

  8. ABP module-zero +AdminLTE+Bootstrap Table+jQuery权限管理系统第十二节--小结,Bootstrap Table之角色管理

    返回总目录:ABP+AdminLTE+Bootstrap Table权限管理系统一期 很多人说ABP不适合高并发大型,有一定的道理,但是我觉得还是可以的,就看架构师的能力了,哈哈,我之前公司就是ABP ...

  9. 深入浅出数据结构C语言版(12)——平衡二叉查找树之AVL树

    在上一篇博文中我们提到了,如果对普通二叉查找树进行随机的插入.删除,很可能导致树的严重不平衡 所以这一次,我们就来介绍一种最老的.可以实现左右子树"平衡效果"的树(或者说算法),即 ...

  10. Andrew Ng机器学习课程笔记--week5(下)

    Neural Networks: Learning 内容较多,故分成上下两篇文章. 一.内容概要 Cost Function and Backpropagation Cost Function Bac ...