事务

#事务
什么是事务?;多组操作要么全部成功要么全部失败
                        开启事务
                        start TRANSACTION 
                        回滚事务(如果事务提交之后不能回滚)
                        rollback 
                        提交事务
                        commit
    事务的4大特性
                    原子性(automic):同一个事务中多组操作不能够分割,必须是一个整体
                    
                    一致性(consistent):事务操作前与事务操作后总量保持一致
                    
                    隔离性(isoltion):多个事务之间互不干扰
                    在mysql中事务有4种隔离级别;READ UNCOMMITTED, READ COMMITTED, repeatble read, SERIALIZABLE
                    查看mysql软件的事务隔离级别:select @@tx_isolation;
                    修改mysql软件的事务隔离级别;set global TRANSACTION ISOLATION LEVEL 隔离级别
                    set global TRANSACTION ISOLATION LEVEL REPEATABLE READ;
                    
                                    脏读;脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据
                                    当mysql事务的隔离级别为 READ UNCOMMITTED时会引发脏读
                                    任何解决脏读问题‘可以将数据库事务的隔离级别改为;READ COMMITTED
                                    set global TRANSACTION ISOLATION LEVEL READ COMMITTED
                                    -------------------------------================-----------------------
                                    不可重复性;是指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的的数据可能是不一样的。这样就发生了在一个事务内两次读到的数据是不一样的,因此称为是不可重复读
                                    当mysql软件的事务隔离性级别为READ COMMITTED的时候,会引发不可重复读;
                                    如何解决不可重复读;奖事务的隔离级别改为 REPEATABLE READ
                                    set global TRANSACTION ISOLATION LEVEL REPEATABLE READ
                                    虚读与幻读 
                                    不可重复性
                    持久性(durable);数据一旦进入到数据库,表中,就永久存在


#事务练习
start TRANSACTION

UPDATE attrs set obj_id = 1;

rollback
commit

select @@tx_isolation;
                                    

 

posted @ 2021-07-02 15:40  汉魂县令  阅读(127)  评论(0)    收藏  举报