コンテンツにスキップ

トランザクション分離レベル

出典: フリー百科事典『ウィキペディア(Wikipedia)』

   (: Isolation) 4  ACID,I(Isolation; , )

[]


1Serial1

Concurrentanomalies[1][2]

anomaliesanomalies

[]


ANSI/ISO SQL4

SERIALIZABLE

Serializability.SERIALIZABLE

REPEATABLE READ



 (Phantom Read) 

READ COMMITTED

 MVCC READ COMMITTED

 (Non-Repeatable Read)

READ UNCOMMITTED



PHANTOM  NON-REPEATABLE READ  (Dirty Read) 

anomaliesphenomena[]


phenomenaANSI SQL[3]

Dirty Read

Non-repeatable Read

Phantom

ANSI SQLanomalies

Dirty Write

Cursor Lost Update

Lost Update: read/writeread/writewrite[4]

Fuzzy Read

Read Skew

Write Skew

anomaliesanomalies[5]

脚注[編集]

  1. ^ Lower isolation levels increase transaction concurrency but risk showing transactions a fuzzy or incorrect database. doi: 10.1145/568271.223785
  2. ^ Running concurrent transactions at different isolation levels allows application designers to trade throughput for correctness. doi: 10.1145/568271.223785
  3. ^ These levels are defined with the classical serializability definition, plus three prohibited action subsequences, called phenomena: Dirty Read, Non-repeatable Read, and Phantom. doi: 10.1145/568271.223785
  4. ^ The problem, as illustrated in history H4, is that even if T2 commits, T2's update will be lost. doi: 10.1145/568271.223785
  5. ^ Running concurrent transactions at different isolation levels allows application designers to trade throughput for correctness doi: 10.1145/568271.223785

参考文献[編集]

  • Berenson, Hal; Bernstein, Phil; Gray, Jim; Melton,Jim; O'Neil, Elizabeth; O'Neil, Patrick (1995-05-22). “A critique of ANSI SQL isolation levels” (英語). ACM SIGMOD Record 24 (2): 1–10.doi:10.1145/568271.223785.

関連項目[編集]