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)