カラム追加ってどれぐらい時間かかるの(PostgreSQL)
はじめに
カラム追加にどれくらい時間がかかるものなのかやってみました。
環境
- CentOS6.5(32bit)
- PostgreSQL9.3.4
手順
検証用のテーブルを作ります。
CREATE TABLE hoge ( id serial NOT NULL, name character varying(128), CONSTRAINT pkey_hoge PRIMARY KEY (id) );
1万行INSERTした後にカラム追加してみます。
test=# select current_time; timetz -------------------- 04:16:42.544809+09 (1 行) test=# alter table hoge add address varchar(256); ALTER TABLE test=# select current_time; timetz -------------------- 04:16:42.562536+09 (1 行)
0秒02ぐらいかかりました。
NOT NULL制約をつけてカラム追加してみます。
test=# select current_time; timetz ------------------- 04:20:00.64587+09 (1 行) test=# alter table hoge add fuga varchar(256) not null default 'fffff'; select current_time; ALTER TABLE test=# select current_time; timetz ------------------- 04:20:00.88685+09 (1 行)
0秒22ぐらいかかりました。
10万レコードINSERTしてNOT NULL制約をつけてカラム追加してみます。
test=# select current_time; timetz -------------------- 04:25:00.268852+09 (1 行) test=# alter table hoge add fugafuga varchar(256) not null default 'fffff'; select current_time; ALTER TABLE test=# select current_time; timetz -------------------- 04:25:02.316623+09 (1 行)
2秒04かかりました。まあ許容範囲でしょうか。
つづいて100万レコードINSERTしてNOT NULL制約をつけてカラム追加してみます。
test=# select current_time; timetz -------------------- 04:33:00.993666+09 (1 行) test=# alter table hoge add fugafugafugafuga varchar(256) not null default 'fffff'; select current_time; ALTER TABLE test=# select current_time; timetz -------------------- 04:33:06.558743+09 (1 行)
5秒56かかりました。場合によっては気にしなければならないでしょうか。
まとめ
制約のついたカラム追加はそれなりに時間がかかる。
データベース徹底攻略 (WEB+DB PRESS plus)
- 作者: 松信嘉範,羽生章洋,ミック,奥野幹也,松下雅和,桑野章弘,青木峰郎,ひろせまさあき,小林篤,島田慶樹,WEB+DB PRESS編集部
- 出版社/メーカー: 技術評論社
- 発売日: 2014/03/15
- メディア: 大型本
- この商品を含むブログ (1件) を見る