postgres
差分
このページの2つのバージョン間の差分を表示します。
| 次のリビジョン | 前のリビジョン | ||
| postgres [2008/11/27 07:12] – 外部編集 127.0.0.1 | postgres [2020/01/16 02:45] (現在) – nullpon | ||
|---|---|---|---|
| 行 3: | 行 3: | ||
| ===== インストール ===== | ===== インストール ===== | ||
| - | [[MacOSX|MacOSXへのインストール]] | + | |
| + | < | ||
| + | brew install postgresql | ||
| + | </ | ||
| ===== ユーザとロール ===== | ===== ユーザとロール ===== | ||
| - | MySQL等のユーザという概念は、ロールに統合されている。PostgresではCREATE ROLEとCREATE USERは同じだが、CREATE ROLEの場合デフォルトでログイン不能のユーザを作成するので注意が必要。 | ||
| - | パスワード認証を行う設定をしていると、パスワードが空ではログインを許可されない。 | + | ロールは権限の主体。ユーザはログイン可能なロールの一種という位置付け。CREATE USERはCREATE ROLEの別名で、LOGIN属性付でCREATE ROLEを行う。 |
| ===== ユーザとパスワードによるログイン ===== | ===== ユーザとパスワードによるログイン ===== | ||
| 行 47: | 行 49: | ||
| テーブル毎に、テーブルを作成する物理的な場所を指定できる。よく使われるテーブルはHDDではなくSSDに作成するといったことができる。 | テーブル毎に、テーブルを作成する物理的な場所を指定できる。よく使われるテーブルはHDDではなくSSDに作成するといったことができる。 | ||
| + | ==== データ使用量を調べる ==== | ||
| + | |||
| + | deleteした領域は解放されず残っている。DBのレコード数のわりにデータ使用量が多い時は vaccum すべし | ||
| + | |||
| + | <code sql> | ||
| + | SELECT | ||
| + | </ | ||
| + | |||
| + | <code sql> | ||
| + | vacuum analyze schema_name.table_name; | ||
| + | |||
| + | vacuum full schema_name.table_name; | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== プロセス ===== | ||
| + | |||
| + | ==== 実行中のプロセス一覧 ==== | ||
| + | |||
| + | < | ||
| + | SELECT * FROM pg_stat_activity; | ||
| + | </ | ||
| + | |||
| + | ==== 実行中のプロセスをkillする ==== | ||
| + | |||
| + | 実行中のジョブを検索してpidを調べて、以下を実行 | ||
| + | |||
| + | < | ||
| + | SELECT pg_cancel_backend(< | ||
| + | </ | ||
| + | |||
| + | ===== lastval ===== | ||
| + | |||
| + | mysqlのlast_insert_idに相当 | ||
| + | |||
| + | < | ||
| + | SELECT lastval(); | ||
| + | </ | ||
| + | |||
| + | ===== truncate ===== | ||
| + | |||
| + | truncateがトランザクション内で実行される。 | ||
| + | |||
| + | <code sql> | ||
| + | test=# begin; | ||
| + | BEGIN | ||
| + | test=# select count(1) from xxx.items; | ||
| + | 100 | ||
| + | test=# truncate test.hoge; | ||
| + | test=# select count(1) from xxx.items; | ||
| + | 0 | ||
| + | test=# rollback; | ||
| + | ROLLBACK | ||
| + | test=# select count(1) from xxx.items; | ||
| + | 100 | ||
| + | </ | ||
| + | |||
| + | `delete from xxx;` の代わりに有り難く利用しよう。deleteの場合、データ領域を解放しないが、truncateは解放するので削除後にvacuumする必要がなくなる。 | ||
| + | |||
| + | ===== copy ===== | ||
| + | |||
| + | データをcsvに出力したり、csvから読み込んだりできる。メタコマンド版と通常コマンド版がある | ||
| + | |||
| + | * メタコマンド版: | ||
| + | * コマンド版: | ||
| + | |||
| + | dockerで動かしている場合などは、ホスト側でpsqlを立ち上げて、メタコマンドで実行するとホスト側とやりとりできる | ||
postgres.1227769968.txt.gz · 最終更新: by 127.0.0.1