ubuntu 禁用透明大页_MySQL InnoDB 透明页压缩(Page Compression)
MySQL InnoDB支持数据压缩,有两种数据压缩方式,第一种为表压缩,通常也称之为行格式压缩,另外一种是页压缩(Page Compression),又叫做透明页压缩(Transparent Page Compression),是一种页面级别的数据压缩,页压缩对操作系统及文件系统有一定的要求。本文主要介绍页压缩的原理及使用方法。
页压缩只支持InnoDB独立表空间:file-per-table
页压缩需要操作系统具有稀疏文件(sparse file)或者文件打孔技术(hole punching)的支持,目前支持这种功能的主流操作系统如下:
Windows NTFS
RHEL 7 内核 3.10.0-123 及更高版本
Ubuntu 14.0.4 LTS 内核 3.13 及更高版本
Ubuntu 12.0.4 LTS 内核 3.2 及更高版本
Debian 7 内核 3.2 及更高版本
1. 页压缩语法
在create table或者alter table时,加上 COMPRESSION 子句,支持的压缩算法主要有Zlib 和 LZ4。
开启页压缩:
CREATE TABLE t1 (c1 INT) COMPRESSION=”zlib”;
ALTER TABLE t1 COMPRESSION=”zlib”;
OPTIMIZE TABLE t1;
禁用页压缩:
ALTER TABLE t1 COMPRESSION=”None”;
OPTIMIZE TABLE t1;
2. 页压缩原理
当一个页被写入磁盘时,InnoDB使用指定的压缩算法对该页进行压缩,然后将压缩后的数据写入磁盘,此时打孔机制会将压缩后的页尾空闲块进行释放,以减少磁盘空间占用。如果压缩失败,则按照原样写入数据。
在Linux操作系统中,文件系统块大小是打孔的单位尺寸,因此,页压缩后的数据必须小于等于InnoDB页大小减去文件系统块大小的值,才能使页压缩生效。举个例子,InnoDB页大小16K,文件系统块大小4K,页数据必须被压缩到小于等于12K,才能使用打孔机制,减少磁盘空间占用。
在Windows操作系统中,稀疏文件基于NTFS文件系统压缩功能实现,打孔单位尺寸为NTFS压缩单元尺寸,这个尺寸是NTFS簇大小的16倍。NTFS簇大小与压缩单元大小对应关系如下表:
NTFS簇大小
NTFS压缩单元大小
512Bytes
8KB
1KB
16KB
2KB
32KB
4KB
64KB
同样的,只有当压缩后的数据小于等于InnoDB页大小减去压缩单元的大小时,才能使页压缩生效。默认的NTFS簇大小4KB,压缩单元大小64KB,这就意味着NTFS默认配置下,无法使用页压缩。因此,如果要想页压缩在NTFS文件系统上生效,需要设置NTFS簇大小为512Bytes,此时压缩单元大小为8KB,设置InnoDB页大小为默认的16KB,或者更大的32KB、64KB,才能使页压缩生效。
3. 页压缩的元数据
系统表 INNODB_SYS_TABLESPACES 存储了页压缩相关的元数据,其主要字段含义如下:
INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES
FS_BLOCK_SIZE:文件系统块尺寸,打孔单元的大小。
FILE_SIZE:表示未压缩文件的尺寸。
ALLOCATED_SIZE:在磁盘上分配的文件的实际尺寸。
使用页压缩功能后,ls命令显示的大小是未压缩的大小,而实际的大小使用du命令查看。
ls -l tablespace_name.ibd,显示FILE_SIZE大小
du –block-size=1 tablespace_name.ibd,显示ALLOCATED_SIZE大小
4. 页压缩的限制和使用注意事项
如果文件系统块大小或者压缩单元大小乘以2大于innodb页大小时,页压缩将自动失效。
共享表空间(系统表空间,临时表空间,通用表空间)中的表不支持页压缩。
undo log 和 redo log 表空间不支持页压缩。
空间索引 R-tree 页 不支持页压缩。
行格式压缩过的表(ROW_FORMAT=COMPRESSED),不支持页压缩。
在InnoDB崩溃恢复过程中,更新的页面将以未压缩的形式写出。
在一个不支持压缩算法的服务器上加载页压缩后的表空间,会导致I/O错误。
使用一个较大的innodb页大小,比如64KB,文件系统块大小4KB,这样的配置能够提高压缩效果,但是同时也会导致写放大,需要更大的buffer pool,增加I/O消耗。
ubuntu 禁用透明大页_MySQL InnoDB 透明页压缩(Page Compression)相关推荐
- ubuntu 禁用透明大页_Linux关于透明大页的使用与禁用介绍
随着计算需求规模的不断增大,应用程序对内存的需求也越来越大.为了实现虚拟内存管理机制,操作系统对内存实行分页管理.自内存"分页机制"提出之始,内存页面的默认大小便被设置为 4096 ...
- linux透明大页内存,Linux如何禁用透明大页
环境: RHEL 6.5 + Oracle 11.2.0.4 RAC 1.确认透明大页是否开启 grep HugePage /proc/meminfo cat /sys/kernel/mm/redha ...
- 【内存】Linux 页表、大页与透明大页|大页内存
目录 页表与MMU CPU访问的是什么地址(虚拟地址,物理地址)? MMU如何工作 MMU对内存的保护 多级页表 一. 内存映射与页表 1. 内存映射 2. 页表 4. 页表的简单工作原理 大页 什么 ...
- linux 内存管理 Transparent HugePages 透明大页 简介
1. 介绍 从RedHat6, RedHat7, OL6, OL7 SLES11 and UEK2 kernels开始,透明大页默认是被开启的以便去改善操作系统的内存管理.透明大页与之前版本的传统意义 ...
- Oracle 标准大页和透明大页
说明: 标准大页(HugePages) 标准大页(HugePages)是从 Linux Kernel 2.6 后被引入的. 目的是用更大的内存页面(memory page size)以适应越来越大的系 ...
- 透明大页相关内核参数_透明大内存页Hugepage支持
==目标== 在linux2.6.38之前,处理大容量内存工作集的高性能关键计算应用是运行在libhugetlbfs之上,必须依赖于 hugetlbfs,.透明Hugepage支持是一种替代手段,它使 ...
- 透明大页相关内核参数_Oracle关于内存参数及大页设置的相关概念和设置之hugepage概念和配置...
一.概念: Oracle 数据库和 Linux 内存管理 系统中使用的内存越多,管理该内存所需的资源也就越多.对于 Linux 操作系统,通过 Linux kswapd 进程和页表内存结构(针对系统中 ...
- Linux 透明大页 THP 和标准大页 HP
作者 | JiekeXu 来源 |公众号 JiekeXu DBA之路(ID: JiekeXu_IT) 大家好,我是JiekeXu,很高兴又和大家见面了,今天和大家一起来看看 Linux 透明大页 TH ...
- 透明大页相关内核参数_Linux7.4 关闭透明大页
1 THP 背景知识补充说明 在Linux6.x之后的平台,在安装Oracle数据库的时候都建议关闭透明大页 Linux下的大页分为两种类型:标准大页(Huge Pages)和透明大页(Transpa ...
最新文章
- 网站初学笔记3-HTML实用元素3
- Android程序为什么没有退出设计?
- linux exec 二程序,二十五、Linux 进程与信号---exec函数
- java项目部署到linux上面,把我的Java项目部署到Linux系统
- 【.NET Core 跨平台 GUI 开发】第二篇:Gtk# 布局入门,初识HBox 和 VBox
- 嵌入式Linux系统编程学习之三十四 Socket 编程
- 马斯克2021五大预测:重返月球并比赛遥控汽车,全面实现自动驾驶,你pick哪一个?...
- acm的STL容器之队列篇 及 UVa 11292 - Dragon of Loowater 小根堆解法(贪心算法)
- zpk在MATLAB中是什么意思,_MATLAB在控制系统中应用 .ppt
- 7的整除特征 三位一截_茅台酒的合格证有哪些特征和鉴别要点?
- ITIL4定义的四大价值维度
- cmd 实用快捷键。。
- linux 删除网桥接口,linux 网桥代码分析 三 网桥及网桥端口的添加与删除
- 人工智能研究中深度学习的局限性
- 智能人物画像综合分析系统——Day7
- 无线测温采集设备及无线测温监控系统的选型指导-安科瑞王婧
- 千兆光纤 GBIC和SFP接口规格介绍
- TOP 5大数据工具,掌握1个你就是专家
- VMWare安装Kali Linux(4-4)
- dell电脑java下载_【亲测不管用】【DELL安装系统的坑】亲测UEFI启动模式的电脑安装Win10和Ubuntu双系统(dell笔记本和hp笔记本)...
热门文章
- 与变异风险词赛跑 阿里探索AI治理网络风险
- 一睹为快 | 施耐德电气全生命周期智能制造解决方案亮相线上工博
- 阿里云宣布3年再投2000亿
- 我花了一夜用数据结构给女朋友写个H5走迷宫游戏 | CSDN 博文精选
- host文件注释 ubuntu_Redis and MongoDB 设置密码验证(scrapy)(win)(ubuntu)
- java变位词_GoLang 字符串变位词
- JavaScript从入门到放弃 -(四)E5 新增方法
- Vue3 --- vue-router4 编程导航
- break continye
- 星外主机销售系统源码_业务员大客户销售订货订单管理系统源码开发外包解析...