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)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章