【MySQL】事務概要


事務とは何ですか.
トランザクションは、データベース操作時に2つの結果のみが存在し、成功または失敗し、成功の半分は存在しません.
古典的なケース:
 银行振り込み: 口座Aは1000元を口座Bに振り込む必要がある.分析によると、必要な操作は口座A残高-1000元、口座B残高+1000元である.これで問題が発生した.トランザクションの存在は、上記の2つの状況が成功するか失敗するかを保証します.2つの操作が完了していないと、1000元が失われることはありません.
2、取引の特性(ACID)
  • Atomicity    原子性
  • Consistency
  • Isolation
  • Durability
    a)Atomicity原子性
    とは、事務の 単位を指し、この操作は であることを示しています.この操作の一連の操作は成功したか失敗したか、私のお金があなたのお金を減らしたのに加算されていないことを防止します.
    b)Consistency整合性
    とは、どのように操作しても、データは常に一致していることを意味します.例えば、振り替えの時、振り替え前は1000元で振り替えた後は1000元で、口座Aから口座Bに移っただけですが、1000元が飛ばないことはありません.データの前後の合計は一致している.
    c)Isolation隔離性
       とは、トランザクションとトランザクションが互いに独立しており、トランザクションが交差していない場合を指す
    d)Durability持続性
       とは、トランザクション内のデータに対する操作が永続的であることを意味し、データベースにエラーが発生しても、トランザクション後の結果データである他の操作に影響を与えるべきではない.
    3、同時性の場合、取引で発生する可能性のある問題
    a)汚い読み
    簡単に言えば、トランザクションBはトランザクションAのコミットされていないデータを読み出した.例えば、トランザクションAのデータxに対する値が10から100に変更された場合、トランザクションAはコミットされず、トランザクションBもこのデータxの値を読み出し、このときに読み出されたデータは汚いデータである.
    b)繰り返し不可
    簡単に言えば、同じトランザクション内で同じローのデータを複数回クエリーしたが、結果は複数であった.複数のトランザクションが同じデータに対して操作を行うため、あるトランザクションがそのデータを修正すると、他のトランザクションが再びクエリした後に得られたデータは前回のクエリと異なり、繰り返して読むことができず、生成される.
    c)幻読
    トランザクションAの2回のクエリのうち、2回目のクエリには、1回目のクエリで発生しなかったデータが表示されます.例えば、 Aが初めて10のデータを検索し、 B10のデータを挿入すると、 Aが再びクエリー( Bがデータを挿入した後)を行うと、データは幻読状態になり、以前の結果と一致しない.