Informix 11.5新特性介绍:第3部分

我们知道,从Informix 11.5 xC4开始,Informix数据库提供了行压缩技术,它采用一种静态的基于字典的压缩算法,将表(table)或表分区(table fragments)中的数据行中重复的数据模式映射到一个占用空间较少的符号,从而减少表格或表分区数据的总大小。这些重复的数据模式不仅可以是一列中的数据,也可以是一列中的部分数据,甚至可以是跨数据列的数据。通过采用行压缩技术,Informix 11.5 可以节省高达 80%的存储空间。同时,由于数据是采用压缩方式存储,I/O 读取效率会有 20% 左右的提高,内存使用效率会更高,数据库备份及恢复的时间也得到相应的减少。

图 1. 采用行压缩技术的示意图


上图中,我们发现,smpo 在数据行中重复出现,在压缩时,我们将其用(01)表示; Dallas TX 75063 同样在数据行中重复出现,在压缩时,我们将其用(02)表示,这样,会节省大量数据空间。

Informix数据库不仅可以对行数据进行压缩,还可以整合表压缩后的空闲空间,并将该空闲空间归还给数据空间重复使用。通过采用行数据压缩技术,可以为我们带来如下好处:

大大节省硬盘存储空间

对于表分区(table fragments)压缩,减少了磁盘的使用

节省了逻辑日志的使用,从而节省更多的空间,并可以防止高吞吐量的联机事务处理出现瓶颈

数据页读取更少,因为一个数据页上可以容纳更多的行需要规模较小的缓冲池,因为同样大小的缓冲池可以容纳更多的数据

I/O 活动会更少:在一个数据页上会容纳更多的数据,对 insert, update, 及 delete 操作的日志记录会更小

在分区表环境,可以将不经常访问的历史数据分区进行压缩,而对经常访问的数据分区不进行压缩

可以释放表中不再需要的空闲空间

更快速的数据库备份及恢复

行压缩技术比较适合于 I/O 操作密集型的表,特别是缓冲池命中率较低的情况。在 OLTP 环境下,对 I/O 操作密集型的表进行行压缩,会显著提高处理性能。如果应用程序缓冲池命中率较高,而且高性能比磁盘空间的使用更重要,这时,采用行压缩技术就不太合适,因为压缩会降低处理性能。

采用行压缩技术,由于一个数据页上可以容纳更多的行,因此,数据库优化器会采用和未进行行压缩处理不同的执行计划。

如果你在使用数据库复制技术 ER,在一个复制服务器上对数据进行压缩,不会影响在其他复制服务器上的数据。

如果你在使用High-Availability Data Replication (HDR), 在源对数据进行压缩,在目标同样会对数据进行压缩。你不能在 HDR secondary, RS secondary, or SD secondary server 上对数据进行压缩,因为 HDR 目标服务器上的数据必须和源上的一样。

哪些数据可以被压缩

我们通常会对表或表分区中具有重复模式的数据进行压缩。行压缩对数据类型没有任何限制,一般来讲,文本数据会比数值类型更容易被压缩,因为文本类型数据中会更容易包含重复模式。但我们不能仅仅根据数据类型来预测数据压缩比。

比如说:

对于存储在 char 或 varchar 字段中的文本数据,采用不同的语言或字符集,数据压缩比往往都不同

对于数值类型数据,如果存在大量的 0,往往压缩效果会好,但对于包含大量不同数值的数据,压缩效果不会太好

数据中包含大量空格的数据压缩效果会好

数据已经采用不同的压缩算法压缩之后,压缩效果不会太好

时间: 2024-11-02 09:57:47

Informix 11.5新特性介绍:第3部分的相关文章

Informix 11.5新特性介绍:第1部分

Informix数据库目前最新的版本是11.5,从Informix 9.Informix 10到Informix 11.5,在数据库性能.数据库管理及应用开发等方面都有了很大的提高,而且推出了很多非常有用的新特性.通过对这些特性的使用,可以大大提高数据库性能.增强数据库可管理性及应用开发的灵活性.我们这里,给大家介绍其中的一些特性,希望对大家能有所帮助. 数据库管理方面的一些实用特性 使用可配置的页面大小 我们知道,在Informix 中,数据存储的最基本的单位是页,在Informix 10 版

Informix 11.5新特性介绍:第2部分

在Informix数据库使用过程中,当发生检查点操作时,会阻塞数据库应用程序的运行,直到检查点操作完成为止.这样,会显著降低数据库的性能.本文将给大家介绍 Informix 11数据库中的非阻塞检查点及 RTO 策略原理及应用实践,希望大家能够对非阻塞检查点及 RTO 策略有一个比较全面的了解. 我们知道,检查点是数据库服务器的一个非常重要的操作,用于将缓冲池内的事务和数据全部或部分清仓到磁盘,为数据库服务器生成一致性点,这样,当数据库服务器发生故障时,可以在已建立的点上重新启动. 检查点的目的

C++11的新特性简单汇总介绍 (二)_C 语言

1. 范围for语句 C++11 引入了一种更为简单的for语句,这种for语句可以很方便的遍历容器或其他序列的所有元素 vector<int> vec = {1,2,3,4,5,6}; for(int x: vec) { cout<<x<<endl; } 2. 尾置返回类型 要想引入尾置类型,我们还得从复杂的类型声明说起.如果我们需要定义一个含有10个int元素的数组,一般是这样的: int arr[10] = {0}; 如果要定义指向这个数组的指针呢: 复制代码 代

C++11的新特性简单汇总介绍 (一)_C 语言

什么是C++11 C++11是曾经被叫做C++0x,是对目前C++语言的扩展和修正,C++11不仅包含核心语言的新机能,而且扩展了C++的标准程序库(STL),并入了大部分的C++ Technical Report 1(TR1)程序库(数学的特殊函数除外). C++11包括大量的新特性:包括lambda表达式,类型推导关键字auto.decltype,和模板的大量改进. 1. 概述 最近在看C++ Primer5 刚好看到一半,总结一下C++11里面确实加了很多新东西,如果没有任何了解,别说自己

Oracle10g安装升级以及新特性介绍

oracle 这部分内容是以前培训时写的课件,现在共享出来给大家参考.  Oracle10g安装与升级之一 这是以前培训时做的一个关于Oracle10g安装升级及新特性介绍的主题,现在拿出来给大家参考... Oracle10g安装与升级之二 关于Oracle10g安装升级及新特性介绍第二部分... Oracle10g安装与升级之三 关于Oracle10g安装升级及新特性介绍第三部分... Oracle10g安装与升级之四 关于Oracle10g安装升级及新特性介绍第四部分...

C++11 标准新特性

新特性的目的 右值引用 (Rvalue Referene) 是 C++ 新标准 (C++11, 11 代表 2011 年 ) 中引入的新特性 , 它 实现了转移语义 (Move Sementics) 和精确传递 (Perfect Forwarding).它的主要目的有两个方面: 消除两个对象交互时不必要的对象拷贝,节省运算存储资源,提高效率. 能够更简洁明确地定义泛型函数. 左值与右值的定义 C++( 包括 C) 中所有的表达式和变量要么是左值,要么是右值.通俗的 左值的定义就是非临时对象,那些

ES6中非常实用的新特性介绍_javascript技巧

ECMAScript 6离我们越来越近了,作为它最重要的方言,Javascript也即将迎来语法上的重大变革,InfoQ特开设"深入浅出ES6"专栏,来看一下ES6将给我们带来哪些新内容. 写在前面 ES6 已经提交给 Ecma 大会审查了,也就是说,我们将迎来一大波 javascript 的最新标准,还有一些语法糖.ES6 中有很多值得我们关注的东西,下面是我发现的一些我们最常用的一些新特性,进行记录一下. 1. for-of循环 这个东西用来循环数组很爽,原因呢,是因为它弥补了目前

久经考验的全栈云平台:Apsara Stack Enterprise 新特性介绍

摘要:本文的整理自2017云栖大会-南京峰会上阿里云专有云高级专家谢宁的分享讲义,讲义首先介绍了企业级云架构的发展趋势.政务云平台的特征.并介绍了阿里云专有云平台的产品全景图,并对于政务云的设计架构以及Apsara Stack Enterprise 的新特性进行了介绍. 在2017云栖大会-南京峰会上,阿里云专有云高级专家谢宁做了题为<Apsara Stack Enterprise 新特性介绍>的分享.在分享中谢宁分享了目前企业级云架构的发展趋势,目前新应用互联网化,传统核心应用开始逐渐改造,

**关于mysql5.7版本新特性介绍 ------数据类型 JSON**

关于mysql5.7版本新特性介绍 ------数据类型 JSON 测试环境: Win10.mysql 5.7.14 内容简介:随着mysql5.7版本的到来,大家对其的热情也越来越高涨,身为mysql圈子里的一员,我本身也对mysql5.7的一些新特性有所了解,通过学习了解到了很多新的特性,今天给大家介绍一下它在灵活性方面的一个新的功能:提供对JSON的支持 JSON介绍 首先介绍一下什么是JSON: > JSON(JavaScript Object Notation, JS 对象标记) 是一