トランザクション分離レベルとは?
分離レベルは、read uncommitted から serializable まで、並行するトランザクションが互いからどの程度保護されるかの度合いを定義します。より高いレベルは、ダーティリードやファントムリードといった、より多くのアノマリーを防ぎますが、並行性は下がります。各レベルは、厳格な一貫性とスループットの間のトレードオフ上で定義された地点です。
なぜ重要か
分離レベルを選ぶことは、アプリケーションが遭遇しうる読み取りアノマリーを決定します。低すぎると微妙なデータバグのリスクがあり、高すぎると負荷の下でスループットを絞りかねません。
関連ガイド
What Is a Dirty Read?A dirty read happens when a transaction reads data another transaction has changed but not yet committed, ris…
What Is a Phantom Read?A phantom read happens when a transaction re-runs a range query and finds new rows that another committed tra…
What Is Pessimistic Locking?Pessimistic locking takes a lock on data as soon as it is read, blocking other transactions from changing it…