|
Article on other languages:
|
PostgreSQL(ぽすとぐれすきゅーえる: 発音例)は、BSDライセンスにより配布されているフリーの関係データベース管理システム (RDBMS) である。その名称は Ingres の後継を意味する「Post-Ingres」に由来している。単純に「Postgres」や「ポスグレ」と呼称されることも多い。 PostgreSQLはIllustraや、Illustraを買収しその技術を採りいれたInformixとともにオブジェクト関係データベース (ORDB) の実装のパイオニアとしての役割を果たしてきた。また、近年においては、機能、信頼性ともに目覚ましい発展を遂げており、商用のRDBMSと遜色が無くなってきている。
特徴
プラットフォーム
追記型アーキテクチャPostgreSQLは、MVCCの実現のため、追記型のアーキテクチャを採用している。 データを削除する際は実際のレコードは削除せず、該当行に削除マークを付けるのみである。 更新の際も内部的には削除と挿入を同時に行っている。 そのため、更新・削除が繰り返されるテーブルにおいては、たとえ理論的な行数が変わらなくとも、更新・運用を重ねるごとに物理的なファイルサイズが増加する。肥大化によるパフォーマンスの劣化を回避するため、次節に述べるバキューム作業を定期的に行う必要がある。 なお、バージョン8.3からはHeap-Only Tuples (HOT) が採用され、インデックスの変更を伴わない更新については、削除された行を直ちに再利用することが可能となり、この問題は大幅に改善された。 バキュームバキューム (VACUUM) とは、追記型アーキテクチャにおける不要領域を回収し、再利用又はOSに返却する処理である。 各バージョンによって以下の差異がある。 PostgreSQL7.1以前データベースファイル内の未使用領域を解放しOSに返却する処理のみをサポートする。 このVACUUMでは、処理中のテーブルに対して排他ロックが獲得されるため、VACUUMの間は対象テーブルへのアクセスがブロックされる。 システムの規模やテーブルの行数にもよるが、本バージョンにおいてシステムの停止を伴わない運用は困難であった。 PostgreSQL7.2/7.3以前の動作を FULL 方式 (VACUUM FULL) とし、新たにコンカレント方式 (VACUUM) が実装された。 現在、単にバキュームと言った場合、後者のコンカレントバキュームを指す。 コンカレントバキュームでは、テーブルの排他ロックを伴わずに不要領域の回収を行う。 不要領域に対して再利用可能フラグを付けるのみの処理となるため、コンカレントバキュームを行っても基本的にデータベースの物理的なサイズは縮小しない。 しかし、以降の更新・削除において、このとき回収した領域が優先的に使用され、更新・削除によるファイルサイズの肥大を防止できる。 PostgeSQL7.4自動的にバキュームを行う contrib/pg_autovacuum モジュールが提供された。 autovacuum はシステムを監視し、INSERT/UPDATE/DELETE の回数などの統計情報を利用して、適切なタイミングで適切なテーブルのみに対してバキュームを行う。 このため、高度な知識を要すことなく、不良領域の増加を十分に抑えることが可能となった。 なお、自動バキューム処理の際に参照される統計情報の記録はデフォルトでオフとなっているため、本機能を利用する際は統計情報の記録オプションもオンにする必要があり、この部分で多少のパフォーマンス低下を伴う。 PostgreSQL8.0バキュームは多くのI/Oが必要なため、負荷の高い処理である。 バキューム実行中のシステムの全体の性能悪化を防ぐため、バキュームを行う速度を制限する機能が追加された。 ただし、バキューム自体の処理時間はその分多く要する。 PostgreSQL8.1contribより提供されていた自動バキューム (autovacuum) 機能が本体に統合された。監視が効率化され、コマンドで発行した VACUUM との連携が可能になった。 PostgreSQL8.3以降自動バキューム機能は標準で有効となった。加えて、Heap-Only Tuplesの採用により、バキューム自体の必要性が低減した。 PostgreSQL 周辺ツールGUI
レプリケーションPostgreSQL のレプリケーションは、サードパーティー製のオプションソフトウェアで実現できる。
歴史
関連項目
外部リンク
|
|||||||||||||||||||||||||||||||||||||||||||||
This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.
Mercedes Car
This site monitored by SitePinger.net