

raise notice '%, %, %, %, %, compress ratio: % ', cols[sub[1]], cols[sub[2]], cols[sub[3]], cols[sub[4]], cols[sub[5]], comp_rat;
if res_comp_rat = 0 then
res_comp_rat := comp_rat;
res_sub := sub;
elseif comp_rat > res_comp_rat then
res_comp_rat := comp_rat;
res_sub := sub;
end if;
END LOOP;
-- 输出压缩比最大的组合
raise notice 'resutl: %, %, %, %, %. compress ratio: % ', cols[res_sub[1]], cols[res_sub[2]], cols[res_sub[3]], cols[res_sub[4]], cols[res_sub[5]], res_comp_rat;
end;
$$ language plpgsql strict;
采样5000万数据,计算每种组合的压缩率,并输出最佳组合。
select best_compress_cols(50000000); -- 采样5000万记录,计算最佳压缩排序.
结果如下:
NOTICE: resutl: c2, c4, c3, c5, c1. compress ratio: 1031.11112165362824768278103927944140
按照这个顺序重组数据,重组后的数据空间占用:
digoal=# create table ao2_test(c1 int, c2 text, c3 int, c4 int, c5 timestamp) with (APPENDONLY=true,BLOCKSIZE=2097152,ORIENTATION=column,COMPRESSTYPE=zlib,CHECKSUM=false);
传真:0755 - 2799 6625
投诉:133-2299-1235
邮箱:sale@inmiga.com