まず、取引の基本的な要素(ACID)
1は、アトミック(原子性):トランザクションの開始後にすべての操作、どちらかのすべてが行われ、またはすべてがそうしていない、中央部で立ち往生することはできません。エラーがトランザクションの実行中に発生し、トランザクションの開始前の状態にロールバックされます、すべての操作が起こったことはありませんが好きです。そのトランザクションは、これまでに原子高校の化学のように、不可分の全体である物質の基本単位です。
2.一貫性(一貫性):最初とトランザクションの終了、データベースの整合性制約は、前に破壊されていません。例えば、Bへの転送は、Aがお金を控除することができない、Bは受信しませんでした。
図3に示すように、分離(単離):異なるトランザクション間で互いに干渉することなく同時に、同じデータのための唯一のトランザクション要求、。例えば、Aは、Bがカードにお金を転送することはできません、銀行カードからお金を引き出すプロセスAの終了前にお金を引き出すことです。
4は、永続的には、(耐久性):トランザクションの完了後、データベースに対するすべての更新がデータベースに保存されますトランザクションはロールバックすることはできません。
第二に、同時トランザクションの問題
1、ダーティ読み取り:トランザクションBは、更新およびロールバックBにデータトランザクションを読み取り、ダーティデータ次いでAはデータを読み取られます
2、反復不能読み取りは:トランザクションが読み取りの過程で同じデータを複数回、トランザクションのトランザクションA時刻Bを読み込み、データを更新して提出された、トランザクションAは、複数回につながる同じデータ、矛盾した結果を読み込みます。
図3は、マジック読書:Aシステム管理者が変更グレードABCDEからのすべての学生のためのデータベースの特定のスコアになりますが、システム管理者Bは、この時点では、特定のレコードのスコアを挿入する際に、システム管理者Aの変更FOUNDの終わりレコードは幻覚として起こった、これはファントム読み取りと呼ばれているだけのよう、一晩変更しないであります。
要約:非反復可能読み取りとファントム読み取りが簡単に混乱している、非反復可能読み取りが変更に焦点を当て、ファントムが追加または削除さに焦点を当てて読み込みます。ラインだけの条件を満たすようにロック非反復可能読み取りの問題を解決するため、ファントムを解決する必要がロックテーブルを読みます
三、MySQLのトランザクション分離レベル
トランザクション分離レベル | ダーティー読み取り | 非反復可能読み取り |
---|---|---|
非コミット読み取り(読み取りコミットされていません) | それはあります | それはあります |
非反復可能読み取り(読み取りコミット) | ノー | それはあります |
反復可能読み取り(反復可能読み取り) | ノー | ノー |
シリアライズ(直列化) | ノー | ノー |