zdsg
发布于

【问答帖】OushuDB中对于行存表和列存表,numeric类型的精度设定约束不同,这种不同的差异设定对于数据库运行或者使用层面来讲,有什么好处?

  • row 表
test=# create table t_ao3(a1 numeric) with (appendonly=true,orientation=row);
CREATE TABLE
test=# insert into t_ao3 values('1.2222222222222222222222222222222222222222');
INSERT 0 1
test=# create table t_ao4(a1 numeric(45,2)) with (appendonly=true,orientation=row);
CREATE TABLE
test=# insert into t_ao4 values('1.2222222222222222222222222222222222222222');
INSERT 0 1
  • orc 表
test=# create table t1(id numeric);
CREATE TABLE
insert into t1 values('1.2222222222222222222222222222222222222222');
ERROR:  orc decimal value precision must be between 1 and 38 (orcam.c:419)  (seg0 slice0 10.0.192.107:40000 pid=787466) (dispatcher_new.c:897)

对于 numeric 类型,row 表没有精度约束,orc 表是有的,对于行存和列存在 numeric 精度这里的设计,有什么优势呢

评论
    test