北京个人做网站,唐山网站建设电话,中国第一个做电商网站,上海传媒公司有哪些事务一共有四个特性#xff1a;原子性、隔离性、持久性、一致性。简称ACID。本文所将就是其中的隔离性。 1、事务中因为隔离原因导致的并发问题有哪些#xff1f;
脏读#xff1a;当事务A对一个数据进行修改#xff0c;但这个操作还未提交#xff0c;但此时事务B就已经读… 事务一共有四个特性原子性、隔离性、持久性、一致性。简称ACID。本文所将就是其中的隔离性。 1、事务中因为隔离原因导致的并发问题有哪些
脏读当事务A对一个数据进行修改但这个操作还未提交但此时事务B就已经读取到了这个修改后的数据并依据这个修改后的数据进行接下来的操作。这就是脏读。
不可重复读当事务A读取数据然后对这个数据进行操作然后再操作期间事务B对这个数据进行了修改则等事务A再次读取这个数据时和一开始读取到的值并不一样这就是不可重复读。
幻读幻读和不可重复读有点类似幻读是事务A对表中所有属“猪”的人删掉而此时事务B对表中查入一条属“猪”的人的数据并进行提交此时事务A就会以为出现幻觉了没有进行删除操作。
脏读是对未提交的数据的读取而不可重复读和幻读都是对已提交数据的读取。不可重复读的重点是修改幻读的重点在于新增或者删除。 2、事务中的隔离级别 READ-UNCOMMITTED(读取未提交) 最低的隔离级别允许读取尚未提交的数据变更可能会导致脏读、幻读或不可重复读。 READ-COMMITTED(读取已提交) 允许读取并发事务已经提交的数据可以阻止脏读但是幻读或不可重复读仍有可能发生。 REPEATABLE-READ(可重复读) 对同一字段的多次读取结果都是一致的除非数据是被本身事务自己所修改可以阻止脏读和不可重复读但幻读仍有可能发生。(MySQL默认级别 SERIALIZABLE(可串行化) 最高的隔离级别完全服从ACID的隔离级别。所有的事务依次逐个执行这样事务之间就完全不可能产生干扰也就是说该级别可以防止脏读、不可重复读以及幻读。
隔离级别脏读不可重复读幻影读READ-UNCOMMITTED√√√READ-COMMITTED×√√REPEATABLE-READ××√SERIALIZABLE×××
3、修改隔离级别
开启事务 start transaction; 结束事务 commit; 或者 rollback; 查看隔离级别 select transaction_isolation; 修改隔离级别 set session transaction isolation level read committed; #设置为读已提交