Read Committedを使用して選択し、明確にしてください

MaxNevermind

http://www.postgresql.org/docs/9.1/static/transaction-iso.html Read Committed IsolationLevelに関するドキュメントには次のように書かれています。

Read Committedは、PostgreSQLのデフォルトの分離レベルです。トランザクションがこの分離レベルを使用する場合、SELECTクエリ(FOR UPDATE / SHARE句なし)は、クエリが開始される前にコミットされたデータのみを参照します。コミットされていないデータや、並行トランザクションによるクエリの実行中にコミットされた変更は表示されません。実際、SELECTクエリは、クエリの実行が開始された時点でのデータベースのスナップショットを参照します。ただし、SELECTは、まだコミットされていなくても、自身のトランザクション内で実行された以前の更新の影響を確認します。また、最初のSELECTの実行中に他のトランザクションが変更をコミットした場合、2つの連続するSELECTコマンドは、単一のトランザクション内にある場合でも、異なるデータを表示できることに注意してください。

最後の文は私を混乱させます、それはどういう意味ですか?トランザクションで2つの選択がなく、3つの選択があり、それらの間にDMLを使用せずにいくつかの計算がある場合はどうなりますか?すべての選択は、すべてのクエリの開始時に独自のスナップショットを表示しますか?

無名の馬

最後の文はこの状況を示しています。

foo両方のトランザクションが開始する前に1つの行を含むテーブルがあると仮定します。

トランザクション1トランザクション2 
---------------------------------------------- ---------
トランザクションを開始します。
select * 
from foo; 
->
                         トランザクションを開始する1行を返します
                         foo値に挿入します(2); 
                         コミット; 
select * 
from foo; 
-> 2行を返すようになりました

(最初の選択後、トランザクション1はコミットされていないことに注意してください)

トランザクション1で新しい(コミットされた)行を表示したくない場合は、「繰り返し可能な読み取り」と呼ばれる分離レベルを使用する必要があります。この名前は、同じクエリを何度も繰り返すことができ、同じデータが繰り返し表示されるという事実に由来しています。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

明確で最新のものを選択してください

分類Dev

pandas.read_csvを使用するときは、無関係なコンマを無視してください

分類Dev

pandas read_csvを使用する場合は、区切り文字を一部のタブのみに制限してください

分類Dev

DataFrameで正確な値を選択してください

分類Dev

クラス内外の選択を確認してください

分類Dev

正確な有効期限を選択してください

分類Dev

カスタムmotdスクリプトのpam_mailのような/ var / pool / mail / $ USERの「newness」/「is-read」を確認してください

分類Dev

linqで選択する前にnullを確認してください

分類Dev

GROUPBY句にない列を選択してください

分類Dev

選択を確認し、Pythonのリストと比較してください

分類Dev

確率ベクトルに関してnumpy行列のインデックスを選択してください

分類Dev

季節に最適な月を選択してください

分類Dev

常にajaxでelse条件を選択してください

分類Dev

有効な選択肢を選択してくださいModelChoiceField

分類Dev

認証に使用する特定の指紋を選択してください

分類Dev

選択オプションの文字列を確認してください

分類Dev

READ_COMMITTED_SNAPSHOTがオンになっているSQLServerデータベースでWITH(NOLOCK)を使用すると、パフォーマンスが向上しますか?

分類Dev

正しい要素を選択してください

分類Dev

投稿しない要素を選択してください

分類Dev

状態に基づいてセグエを選択してください

分類Dev

const修飾子の伝播を明確にしてください

分類Dev

数字が続く文字のみを選択してください

分類Dev

numpy genfromtxt / pandas read_csv; 引用符内のコンマは無視してください

分類Dev

兄弟のいない子供を選択してください

分類Dev

IDを持たない要素を選択してください

分類Dev

すべての介入にある製品を選択してください

分類Dev

実際の高さを選択してください

分類Dev

AndroidのGPS修正で使用される衛星を選択してください

分類Dev

トークン内の単語をさらに選択してください

Related 関連記事

  1. 1

    明確で最新のものを選択してください

  2. 2

    pandas.read_csvを使用するときは、無関係なコンマを無視してください

  3. 3

    pandas read_csvを使用する場合は、区切り文字を一部のタブのみに制限してください

  4. 4

    DataFrameで正確な値を選択してください

  5. 5

    クラス内外の選択を確認してください

  6. 6

    正確な有効期限を選択してください

  7. 7

    カスタムmotdスクリプトのpam_mailのような/ var / pool / mail / $ USERの「newness」/「is-read」を確認してください

  8. 8

    linqで選択する前にnullを確認してください

  9. 9

    GROUPBY句にない列を選択してください

  10. 10

    選択を確認し、Pythonのリストと比較してください

  11. 11

    確率ベクトルに関してnumpy行列のインデックスを選択してください

  12. 12

    季節に最適な月を選択してください

  13. 13

    常にajaxでelse条件を選択してください

  14. 14

    有効な選択肢を選択してくださいModelChoiceField

  15. 15

    認証に使用する特定の指紋を選択してください

  16. 16

    選択オプションの文字列を確認してください

  17. 17

    READ_COMMITTED_SNAPSHOTがオンになっているSQLServerデータベースでWITH(NOLOCK)を使用すると、パフォーマンスが向上しますか?

  18. 18

    正しい要素を選択してください

  19. 19

    投稿しない要素を選択してください

  20. 20

    状態に基づいてセグエを選択してください

  21. 21

    const修飾子の伝播を明確にしてください

  22. 22

    数字が続く文字のみを選択してください

  23. 23

    numpy genfromtxt / pandas read_csv; 引用符内のコンマは無視してください

  24. 24

    兄弟のいない子供を選択してください

  25. 25

    IDを持たない要素を選択してください

  26. 26

    すべての介入にある製品を選択してください

  27. 27

    実際の高さを選択してください

  28. 28

    AndroidのGPS修正で使用される衛星を選択してください

  29. 29

    トークン内の単語をさらに選択してください

ホットタグ

アーカイブ