firebirdというオープンソースのデータベースを使ってみた【その6】

社内のプライベートクラウドのセットアップとかしていましたk2w4t4hです。

今回で連載も6回目です。今回はfirebirdでALTER TABLEの続きとか何とか。

前回までの記事はこちら
第1回目 firebirdというオープンソースのデータベースを使ってみた【その1】 - スマートフォンアプリ開発会社のエンジニアブログ
第2回目 firebirdというオープンソースのデータベースを使ってみた【その2】 - スマートフォンアプリ開発会社のエンジニアブログ
第3回目 firebirdというオープンソースのデータベースを使ってみた【その3】 - スマートフォンアプリ開発会社のエンジニアブログ
第4回目 firebirdというオープンソースのデータベースを使ってみた【その4】 - スマートフォンアプリ開発会社のエンジニアブログ
第5回目 firebirdというオープンソースのデータベースを使ってみた【その5】 - スマートフォンアプリ開発会社のエンジニアブログ


以前との統一性を取るために以下のSQL文で作成したテーブルに対してごにょごにょします。

CREATE TABLE GLPGS(
ID INTEGER NOT NULL PRIMARY KEY,
NAME VARCHAR(63) NOT NULL,
PASSWD VARCHAR(127) NOT NULL,
LEVEL SMALLINT NOT NULL,
UPDATED TIMESTAMP NOT NULL,
CREATED TIMESTAMP NOT NULL
);

CREATE SEQUENCE GLPGS_SEQ;


レベルのデフォルト値を10にします。

ALTER TABLE GLPGS ALTER COLUMN LEVEL SET DEFAULT 10;


レベルのデフォルト値を破棄します。

ALTER TABLE GLPGS ALTER COLUMN LEVEL DROP DEFAULT;

続いてはインデックス関連について書いていきます。

ただのインデックスをNAMEカラムに作成します。

CREATE INDEX GLPGS_NAME_INDEX ON GLPGS(NAME);


ユニークインデックスをNAMEカラムに作成します。

CREATE UNIQUE INDEX GLPGS_NAME_INDEX ON GLPGS(NAME);


ところで、公式ページのリファレンスには書いてなかったりするんですが(おい)、以下のようなこともできます。

NAMEカラムのインデックスを削除します。

DROP INDEX GLPGS_NAME_INDEX;


NAMEカラムのインデックスを一時停止します。

ALTER INDEX GLPGS_NAME_INDEX INACTIVE;


NAMEカラムのインデックスを再開します。

ALTER INDEX GLPGS_NAME_INDEX ACTIVE;


何がしたいのかというと、大量にINSERTをかける前にインデックスを止めておいて、終了したらインデックスを再開することでパフォーマンスをあげようとしているのです。

firebirdの話ばかり書いていてもあれなので、次は他のことでも書こうと思います。