Mysql事务


一.事务:一系列要发生的连续操作

        1.事务操作:自动操作、收到操作

                1)手动操作,操作流程

                    A.操作流程:

                            1.开启事务:告诉系统一下操作不要直接都写到数据表中,而是先存放到事务日志中去,start transaction;

                            2.事务操作:进行一系列操作

                            3.关闭事务:选择性的将事务日志中的的操作结果保存到数据表(同步)或者直接清空事务日志(清空原来所

                                                有操作)

                                      a.提交事务:同步数据表(操作成功) commit

                                      b.回滚事务:清空事务表(操作失败) rollback

            2.事务操作的原理:事务开启后所有操作都会保存到事务日志中去,事务日志只有在commit命令时才会将事务日志中的

                                          操作同步到数据表中其他任何操作都会清空(rollback、断开连接、断电);

Mysql事务

        3.回滚点:当某个操作完成后会设置回滚点,如果后续的操作失败系统会跳转到回滚点。

                   A.设置回滚点:savepoint 回滚点名称; 返回回滚点 rollback to 回滚点名字;

                    Mysql事务

              2)自动事务处理:mysql中都是自动事务处理,用户操作完就会立即同步到数据表中

                        A.自动事务:系统通过autocommit变量控制  show variables like 'autocommit';

                                  Mysql事务

                               1.关闭自动事务提交:set autocommit=0;

               3).事务的是大特性ACID

                           a.Atomic原子性:事物的整个操作是一个整体要么全部成功要么全部失败。

                           b.Consistency一致性:事务在操作的过程中数据不会发生变化

                           c.Isolation 隔离性:两个事务在操作的过程中彼此无影响,只有都提交事务后然会发生变化

                           d.durability 永久性:事务一旦提交,操作过程不可逆。

                    锁机制:innodb默认是行锁,但是如果在事务的处理过程中,没有用到索引系统会自动检索全表数据,

                                 自动会升级为行锁

                                 行锁:当前行被锁住,其他用户不能操作

                                 表锁:当前表被锁住,其他用户无法操作

                Mysql事务