業務
原子性(A、原子性)、一貫性(C、一貫性)、分離(I、アイソレーション)、永続的な(D、durabulity):トランザクションは、ACID特性を有します。
図1は、アトミック:トランザクション内のすべての操作が実行され、または実行されないのいずれかで、それが仕事の不可分単位です。
図2は、の整合性:状態データベースからの遷移は、常に前の例では、一貫性があっても第三の4つのステートメント間のシステムクラッシュの実装では、確保された(別の一貫性に一貫性のある状態でも、アカウントをチェック$ 200の損失なく、物事は最終的に提出されていないので、その事がデータベースに加えられた変更は保存されません)
3、アイソレーション:3番目のステートメントの完全な実装は、4番目の文はまだ開始されていないときの最終提出する前に変更は、他のトランザクションは、前の例では(表示されないようにする会社は、この時点で存在し別のアカウントのロールアップは、それが当座預金口座の残高がなかった見マイナス$ 200)、実行を開始します
4.耐久性:トランザクションが完了した後、取引に関与したデータは、その持続性の持続性を確保するために、ディスクに書き込む必要があります。もちろん、これは必ずしもないが、オペレーティングシステムやハードウェア障害から、考慮すべき事項の持続性の観点からです。
(オープントランザクション、転送シミュレート環境);アイソレーションを確認します
1>表を作成し、データを追加
2>表示総務変数(ショーの変数は、システム変数を表示するために使用することができます)
上:自動コミット
3>オープンサービス(開始する2つの方法を、トランザクションを開始;)自動的にトランザクションを提出点灯しないが、メモリ動作のもので
4>転送シミュレーション
$
5>ターミナルビューを見て
&オープン取引および転送シミュレーション
あなたはカードがエラーになるまで、となっていることがわかります
トランザクション分離、相互干渉がないからです
6>(ディスクに書き込まれた)トランザクションを閉じます
7>表示
#別の端末を見ます
なぜ変更しませんか?トランザクションがそれらにまだあるので、我々は、トランザクションを終了する必要があります
&停電転送をシミュレート
1>事項について
2>転送
3>アナログ電源障害
4>は、データベースを再入力してください
5>表示
ターンを見つけるでしょう、最初からこれがトランザクションを開始、またはすべての成功を実行するために、または完全な失敗を持っているに失敗している、ので、これは、バックです。
失败后于做了一次回滚 ( rollback)( 相当于咱们什么都没操作)
6>这时候则需要人为 来调整下
注: 结束事务有两种方法,commit ; rollback;(回滚)
补充:
&1
这里默认 ON 在不开启 begin 的情况下 每执行一条seq 语句都会自动提交事务
改变它的默认参数
&1永久方法
编辑配置文件
vim /etc/my.cnf.d/server.cnf
0 : 关闭
重启数据库并查看
&2临时修改
set xxxx = 0
补充2: show variables ;
查看系统变量 ( 参数)