對已有的大表做ddl操作

2021-10-09 18:05:45 字數 452 閱讀 5506

1,如加索引  通常在postgresql建立普通索引如下

create index idx_table_name_x1 on table_name(col_name);

在一次生產變更時,執行以上語句後在建立索引期間會阻塞 dml,如果是在比較繁忙的系統或者大表上執行該語句的話,估計很快就會有人問候你了。

所以應該使用 concurrently 引數:

create index concurrently idx_table_name_x1 on table_name(col_name);

同樣 oracle 也有類似的方法,如下 :

create index idx_table_name_x1 on table_name(col_name)online;

2,如增加字段同時加上預設值

建議分開執行,先新增字段,再執行字段預設值的設定

oracle對已有表建立分割槽

oracle根據已有表及資料建立表分割槽並匯入資料 假設情景 現有system.test表,資料量過千萬,處於ts test表空間中。表中有列a,將a 6與a小於6的資料進行分割槽 www.2cto.com 確保不會有外部程式修改需要建表分割槽的表 1.對需要重建表分割槽的表進行備份,匯出dmp,防...

MySql已有的表中增加一列

如果想在乙個已經建好的表中新增一列,可以用諸如 alter table table name add column new column name varchar 20 not null 這條語句會向已有的表中加入新的一列,這一列在表的最後一列位置。如果我們希望新增在指定的一列,可以用 alter ...

將已有的分割槽表全域性索引改為本地索引

由於當初建表的時候建了兩張需要儲存大量資料的分割槽表,卻沒有建立本地索引,而是使用建立主鍵的時候,oracle自動建立的全域性索引。最近由於表空間問題drop了這兩張表的部分分割槽,結果導致了ora 01502,索引失效了。在網上找了很多方法,用如下方法將全域性索引改為了本地索引,避免了以後再次對分...