タグ

postgresqlとprogrammingに関するdecoy2004のブックマーク (2)

  • [ThinkIT] 第3回:トランザクションの比較 (1/4) -at- 徹底比較!! PostgreSQL vs MySQL

    トランザクション機能をサポートしているのは、PostgreSQLMySQL+InnoDBエンジンであり、MySQL+MyISAMエンジンはトランザクション機能をサポートしていません。ここでのトランザクション機能とは、複数のテーブルやレコードに影響をおよぼす処理を1つの単位とみなし、この単位での処理結果を保証する機能を指します。 具体的には、BEGIN文にてトランザクションを開始していくつかの処理を行った後、処理を確定する場合はCOMMIT文、処理を取り消す場合はROLLBACK文を使用し、トランザクションを終了させるまでの処理です。 トランザクション分離レベルとは、複数のトランザクションが同時に実行された場合に、他のトランザクションからの影響がどのくらい分離するかのレベルを意味します。 ANSI/ISO SQL規格(SQL92)では4つの分離レベル(下記コラム参照)が定義されています。P

  • トランザクションの隔離 -at- PostgreSQL 8.0.0 文書

    PostgreSQLでは、4つの標準トランザクション隔離レベルを全て要求することができます。 しかし、内部的には、リードコミッテッドとシリアライザブルに対応する2つの独立した隔離レベルのみがあります。 リードアンコミッテッドレベルを選択した時、実際にはリードコミッテッドになり、リピータブルリードを選択した時、実際にはシリアライザブルになります。 このように実際の隔離レベルは選択したレベルより厳密になることがあります。 これは標準SQLでも許されています。 この4つの隔離レベルについては、発生してはならない事象のみが定義され、発生しなければならない事象は定義されていません。 PostgreSQLが2つの隔離レベルのみを提供している理由は、多版型同時実行制御という仕組みに標準の隔離レベルを関連付ける実際的な方法がこれしかなかったことです。 利用可能な隔離レベルについては後で詳細に説明します。

  • 1