压缩索引

原创 2013年12月03日 15:37:26

创建压缩索引

从串联索引中去掉冗余

压缩索引特征:

每个条目分为两项:前缀和后缀

前缀:建立在串联索引的前几列,这些列有许多值重复

后缀:索引键后几列,是前缀索引所在索引中唯一部分。

create table ind_test as select * from all_objects;
drop table id_stats;
create table id_stats as select  'compress   33333' what ,t.* from index_stats t where 1=0;

drop index ind_compress;
create index ind_compress on ind_test(owner,object_type,object_name);
analyze index ind_compress validate structure;
analyze index ind_compress compute statistics;
insert into id_stats select 'compress 0',t.* from index_stats t ;

drop index ind_compress;
create index ind_compress on ind_test(owner,object_type,object_name) compress 1;
analyze index ind_compress validate structure;
analyze index ind_compress compute statistics;
insert into id_stats select 'compress 1',t.* from index_stats t ;

drop index ind_compress;
create index ind_compress on ind_test(owner,object_type,object_name) compress 2;
analyze index ind_compress validate structure;
analyze index ind_compress compute statistics;
insert into id_stats select 'compress 2',t.* from index_stats t ;

drop index ind_compress;
create index ind_compress on ind_test(owner,object_type,object_name) compress 3;
analyze index ind_compress validate structure;
analyze index ind_compress compute statistics;
insert into id_stats select 'compress 3',t.* from index_stats t ;

官网上说是分析后压缩节省空间:但是我认为是在最佳压缩方案下,在当前基础上还能节省空间

压缩会增加CPU计算,不光光维护还有查询也是的。这需要开发者在IO和CPU计算做出一个权衡。

利用压缩能够减少该索引的缓冲块的个数,从而减少IO次数,增加CPU次数,增加对索引竞争

如果当前大量占用CPU时间,使用索引压缩会适得其反,降低查询速度

如果当前大量IO,使用压缩索引键会提高性能

相关文章推荐

搜索引擎倒排索引表压缩:gamma编码

搜索引擎的倒排索引表所占的空间很大,对倒排索引表进行压缩显得非常必要。由于倒排索引表中存储的全部都是数字,对其进行压缩有着专门的方法,Gamma编码就是其中的一种。Gamma编码是一种基于位的变长编码...

hadoop,hive启用lzo压缩和创建lzo索引

启用lzo压缩对于小规模集群还是很有用的,压缩比率大概能达到原始日志大小的1/3。同时解压缩速度也比较快,Hadoop原生是支持gzip和bzip2压缩的,这两种压缩虽然压缩比率比lzo更大,但是在做...

(索引)压缩方法

1.固定长度的压缩方法      一个典型的方法是比特对齐压缩,这个方法以Byte为编码单元,不像变长压缩编码一般都以bit为编码单元;  对于要压缩的数字,一般用头两个bits代表长度,其它bit用...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:压缩索引
举报原因:
原因补充:

(最多只允许输入30个字)