lightdb秒级增加列和删除列(not null带默认值)

  对数据量过亿的大表而言,dba最头疼的是随着业务变化增加带默认值的字段,以及修改字段的数据类型,在实现不好的数据库中,动不动执行半天,中途失败的话,还会卡半天。这在lightdb中是不会发生的。如下所示:

lightdb@oradb=# create table t(id int,v varchar2(100));
CREATE TABLE
lightdb@oradb=# insert into t select level,uuid() from dual connect by level<1000000;
INSERT 0 999999
lightdb@oradb=# \timing on
Timing is on.
lightdb@oradb=# alter table t add c_d date not null default sysdate;
ALTER TABLE
Time: 23.640 ms
lightdb@oradb=# select * from t limit 1;
 id |                  v                   |         c_d         
----+--------------------------------------+---------------------
  1 | 23364dc4-63e8-4017-995e-adb181a8731d | 2024-05-16 15:32:36
(1 row)

Time: 1.865 ms
lightdb@oradb=# alter table t add c_i number not null default 1;
ALTER TABLE
Time: 15.155 ms
lightdb@oradb=# alter table t drop column v;
ALTER TABLE
Time: 3.194 ms

但是修改数据类型为其他簇的数据类型意外,因为他要验证数据的有效性。如下:

lightdb@oradb=# alter table t modify c_i varchar2(10);
ALTER TABLE
Time: 1679.760 ms (00:01.680)

 

posted @ 2024-05-16 15:37  zhjh256  阅读(10)  评论(0编辑  收藏  举报