【MySQL】トランザクションのお話
Photo by Jojo Yuen (sharemyfoodd) on Unsplash
皆さん、こんにちは。
今日はトランザクションについてお話したいと思います。
トランザクションとは
1つの作業単位として扱う一連の操作の集まりです。
トランザクション内の操作が全て実行されるか、または全て実行されないことを保証してくれます。
これにより、複数のテーブル更新を行っても整合性が保たれた状態で処理ができます。
ACID特性
トランザクションに必要な性質の頭文字をとって「ACID特性」と言います。
原子性 (Atomicity)
トランザクション内の操作が全て実行されるか、または全て実行されないかのどちらかになります。中途半端な状態は有り得ないです。つまり、トランザクションはそれ以上細かい単位に分割することができない作業単位であるということです。
一貫性 (Consistency)
トランザクションの実行前と後でデータに矛盾がなく整合性が保たれる性質です。
分離性 (Isolation)
トランザクション中に行われる操作は他のトランザクションに影響を与えない性質です。つまり、それぞれのトランザクションは分離された状態で操作を行わなければなりません。
永続性 (Durability)
トランザクションが完了すると、その処理結果は永続的となります。たとえシステム障害が発生してもデータが失われることがない性質です。