opstgreSQL



・コマンド
・pg_dumpを利用したバックアップ,リストア
・copyを利用したバックアップ,リストア
・高速化関連
  ・vacuum
  ・統計情報
    ・index
    ・explain
  ・その他
    ・通版(serial)
    ・バージョン
    ・外部結合



コマンド
psql (ユーザ名) : psql起動
\? : help psqlコマンド一覧表示 \q : quit(psql終了)
\h (コマンド名): help 指定コマンドの使用方法
\d ; DB内テーブル一覧情報
\d (テーブル名); DB内テーブル情報
注意点 ()内容は任意
例 : \d (テーブル名) -> \d foo

\?,\h (コマンド名)により使用方法を確認すること。


pg_dumpを利用したバックアップ,リストア
バックアップ
pg_dump (DB名) > /tmp/backup/PostgresBackup.dmp
・注意
DB内容をテキストファイルに落とします。
DB内容に比例してファイルサイズも大きくなります。
出力前・後はファイルサイズを検証・圧縮しましょう。
リストア
psql (DB名) < /tmp/backup/PostgresBackup.dmp
・注意
対象のデータベースは、dropdbで削除しておくこと。


copyを利用したバックアップ,リストア
バックアップ
COPY (テーブル名) TO '/tmp/datafile_(テーブル名).dmp';
・注意
psql内で行う。
標準ではタブセパレータでテキスト出力される。
リストア
COPY (テーブル名) FROM '/tmp/datafile_(テーブル名).dmp';


高速化関連
VACUUM
ゴミデータを削除する。
・ゴミデータが出来る理由
------------------------
DELETE文で削除されたレコードは、実際に削除されるわけではなく、見えないだけです。
また、UPDATEに関しても同様です。
------------------------
そういったDB内部のゴミデータを削除するのが"VACUUM"コマンドです。
[運用に関して]
上記の理由から、処理内容によりますが定期的にVACUUMを行う必要があります。
なぜなら、ゴミデータの量に比例したコスト(時間)が掛かるからです。
統計情報
ANALYZEによって収集される。
例:VACUUM [ VERBOSE ] [ ANALYZE ] [ table ]
参考URL:http://pckyou37.cs.shinshu-u.ac.jp/Lesson/DataBase/POSTGRE/sql-vacuum.html
INDEX(索引)
・作成方法
CREATE INDEX インデックス名 ON テーブル名 (フィールド名1,フィールド名2);
*注意点
where句で指定する条件に対して、インデックスを作成すると効果があります。
実際にインデックスが使用されているかは、次項目"EXPLAIN"を参照すること。
EXPLAIN
インデックスが利用されているかの確認として用いる。
(処理速度も"cost"という形で計測されてはいる)

SQL例:EXPLAIN SELECT a.foo FROM bar a where a.id = 100;

結果
Index Scan using インデックス名 on bar ・・・


その他
serial(通番)
参考URL:http://www.net-newbie.com/postgres/man/manl/create_sequence.l
バージョン
外部結合





メモindexへ
Topへ