Mazn.net

やってみて 調べてみて 苦労しなけりゃ 箱は動かじ

アイソレーションレベル

      2013/07/15

データベースはあまり詳しくないので、メモ書き。

SQL-92の仕様では、アイソレーションレベルというものがあり、READ_UNCOMMITTED, READ_COMMITED, REPAETABLE_READ, SERIALIZABLEという4つのレベルがあります。これを”SET TRANSACTION ISOLATION LEVEL”文で設定できます。これを設定することで、データベースからデータを読み込む際の挙動がかわります。

それぞれの意味は以下の通り。下にいくほど同時実効効率が悪くります。(NONEを除く)

アイソレーションレベル トランザクションサポート 不正な読み込み
ダーティリード ノンリピータブルリード ファントムリード
READ_UNCOMMITTED 発生 発生 発生
READ_COMMITETED
未発生 発生 発生
REPEATABLE_READ 未発生 未発生 発生
SERIALIZABLE 未発生 未発生 未発生
NONE ×
発生 発生 発生

ここでの なんとかリードっていうのは以下のような意味です。

  • ダーティリード
    • トランザクションAとBがあって、Aが更新内容をコミットしていないのにBにはその内容が見えてしまうこと
  • ノンリピータブルリード
    • トランザクションAとBがあって、Aが更新している最中にBが複数回のSELECTをした場合に、複数回のSELECTの結果が違うこと
  • ファントムリード
    • トランザクションAとBがあって、Aがrowの追加・削除している最中にBが複数回のSELECTをした場合に、複数回のSELECTの結果が違うこと

 - IT技術, プログラミング

336px

Message

メールアドレスが公開されることはありません。

  関連記事

no image
異なるポート間でポートフォワーディング@NEC Aterm のルーター

NEC Aterm系のルーターは、ポートマッピングという機能があります。 通常の …

Kubernetesのコンパイル

昨今、OSSを製品からコンパイルして使うことは少なくなってきましたが、Kuber …

no image
Linuxで汎用マウスジェスチャ@Fedora 14 with KDE

Windows では strokeit という汎用のマウスジェスチャをずっと使っ …

no image
vimでpythonのプラグラムの一部分を一気にインデント追加or削除する

python って、インデントでプログラムの構造を定義しますので、インデントを簡 …

no image
Googleの検索結果に近所の情報が表示される件

いつ頃からか、Googleで普通に検索すると、近所の情報が表示されるようになりま …

no image
Windowsが勝手に再起動するのを防止@Windows Vista

Windows Vistaで、Windowsを更新して、ほったらかしていると勝手 …

no image
screenを起動するとウィンドウの幅が変わる@RHEL6

Windows上からsshログインしたRHEL6でscreenを使うと、ウィンド …

no image
標準出力と標準エラー出力を入れ替える方法@bash

標準出力と標準エラー出力を入れ替える方法を、結論だけを先に書くと 3>&a …

no image
パイプでつないだコマンドの戻り値を調べる@bash

シェルスクリプトで、実行したコマンドの戻り値を知る方法は有名ですよね。 以下のよ …

no image
シェルスクリプトでファイル内の文字列を置換する

== 2012/11/8 追記 == 以下ではedコマンドでの文字列置換を紹介し …