無料スクリプト配布のPHP.TO   PHPの実用的なtips PHPマニュアル MySQLマニュアル Apacheマニュアル PostgreSQLマニュアル マニュアル検索    

13.1. 序文

PostgreSQL は、データへの同時アクセスを管理するために高度な開発者向けツール群を提供します。 内部的に、データ一貫性は多版方式(多版型同時実行制御 MVCC )を使用して管理されています。 つまり、データベースへの問い合わせ実行の際、各トランザクションは処理の基礎となっているデータの現在の状態にかかわらず、遡ったある時点におけるスナップショット( データベースバージョン )を参照する、というものです。 これは、同時に並行している(別の)トランザクションが同じ行を更新することによって引き起こす整合性を欠いたデータの参照からトランザクションを保護し、それぞれのデータベースセッションに対して トランザクションの分離 を提供します。 MVCC は、マルチユーザ環境で理想的な性能を得るために、伝統的なデータベースシステムで行われるようなロック手法を避けることで、ロックの競合を最小化します。

ロックではなく同時実行制御の MVCC モデルを使用する主な利点は、 MVCC では問い合わせ(読み込み)ロックの獲得と、書き込みロックの獲得が競合しないことです。 したがって、読み込みは書き込みを絶対にブロックしませんし、書き込みも読み込みをブロックすることがありません。 革新的な シリアライザブルスナップショット分離 ( SSI )レベルの使用を通した最も厳密なトラザクションの分離レベルを提供する場合にも PostgreSQL はこれの保証を維持します。

全般的に完全なトランザクションの分離を必要とせず、明示的に競合する点を管理することを望むアプリケーションのために、 PostgreSQL ではテーブルレベルおよび行レベルのロック機能も使用可能です。 とはいえ、 MVCC を適切に使用すると通常ロックよりも性能が向上します。 さらに、アプリケーションが定義した勧告的ロックは単一トランザクションに拘束されないロックの獲得機構を提供します。


powered by SEO.CUG.NET