mysql的压缩特性-需求
需求:最近有个插入量比较大的应用需要上,每天的插入量在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的压缩特性-需求的更多相关文章
- CompressFilterAttribute 文件压缩特性
/// <summary> /// 文件压缩特性 /// </summary> public class CompressFilterAttribute : ActionFil ...
- Mysql InnoDB三大特性-- change buffer
Mysql InnoDB三大特性-- change buffer
- Mysql InnoDB三大特性-- 自适应hash index
Mysql InnoDB三大特性-- 自适应hash index
- mysql无法压缩存储表情
原文链接:https://www.cnblogs.com/SimonHu1993/p/7573868.html mysql无法压缩存储表情compress(str),就选择过滤把emoji表情符号替换 ...
- 个人MySQL的事务特性原理学习笔记总结
目录 个人MySQL的事务特性原理笔记总结 一.基础概念 2. 事务控制语句 3. 事务特性 二.原子性 1. 原子性定义 2. 实现 三.持久性 1. 定义 2. 实现 3. redo log存在的 ...
- TokuDB · 引擎特性 · HybridDB for MySQL高压缩引擎TokuDB 揭秘
原文出处:阿里云RDS-数据库内核组 HybridDB for MySQL(原名petadata)是面向在线事务(OLTP)和在线分析(OLAP)混合场景的关系型数据库.HybridDB采用一份数据存 ...
- MySql存储引擎特性对比
下表显示了各种存储引擎的特性: 其中最常见的两种存储引擎是MyISAM和InnoDB 刚接触MySQL的时候可能会有些惊讶,竟然有不支持事务的存储引擎,学过关系型数据库理论的人都知道,事务是关系型数据 ...
- Mysql存储引擎特性总结
几个常用存储引擎的特点 下面我们重点介绍几种常用的存储引擎并对比各个存储引擎之间的区别和推荐使用方式. 特点 Myisam BDB Memory InnoDB Archive 存储限制 没有 没有 有 ...
- 【特性】MySQL 8 新特性
MySQL 8.0 正式版 8.0.11 已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能! 注意:从 MySQL 5.7 升级到 MySQL 8 ...
随机推荐
- Solr(五)Solr实现简单的类似百度搜索高亮功能-2代码
Solr高亮 一 在配置文件中,配置支持Ik分词器的Field 修改文件: cd /usr/local/tomcat/apache-tomcat-8.5.13/solr_home/Test/conf/ ...
- HashMap 源码解读
HashMap在JDK1.7和1.8中有了很大的改变,空闲时间对HashMap做了一点点的研究. HashMap是一种数组和链表结合的数据结构,我们每次new一个HashMap时,都会构造出一个长度为 ...
- JSONP 爬虫
作者QQ:1095737364 QQ群:123300273 欢迎加入! 1.mavne 依赖: <!--html 解析 : jsoup HTML parser library @ ...
- 初探IAT
---恢复内容开始--- IAT(Import Address Table:输入函数地址表) [IAT作用是什么:] 一个API函数,比如MessageBoxA,我们是如何调用它的呢, 在这里我们可以 ...
- Luogu [USACO08OPEN]寻宝之路Clear And Present Danger
题目描述 Farmer John is on a boat seeking fabled treasure on one of the N (1 <= N <= 100) islands ...
- 【javascript】函数中的this详解 — 大家准备好瓜子,我要讲故事啦~~
javascript中的this和函数息息相关,所以今天,我就给大家详细地讲述一番:javascript函数中的this 一谈到this,很多让人晕晕乎乎的抽象概念就跑出来了,这里我就只说最 ...
- 微信小程序简单入门1
参考文档:https://mp.weixin.qq.com/debug/wxadoc/dev/index.html 1 创建项目 开发者工具安装完成后,打开并使用微信扫码登录.选择创建"项 ...
- 十分钟帮你搭建专业的内容付费平台(APP/网站)
内容付费变现时代,从商业运营角度出发,全面付费系统多方面支付节点,强化优质付费价格核心,ThinkSNS+(简称TS+),专注于帮助创业者变现,抓取社群经济,让您拥有专属的知识变现软件系统. 一.内容 ...
- sns社交系统ThinkSNS+ 更新至V0.8.2,新增圈子功能
sns社交系统"ThinkSNS+"于7月15日发布了V0.8.0,含开源版本web+H5,及Android APP和iOS APP客户端. V0.8.2版本将于7月29日(本周六 ...
- kali linux 2.0下搭建DVWA渗透测试演练平台
DVWA (Dam Vulnerable Web Application)DVWA是用PHP+MySQL编写的一套用于常规WEB漏洞教学和检测的WEB脆弱性测试程序.包含了SQL注入.XSS.盲注等常 ...