mysql事务隔离级别和锁
事务的核心是锁和并发,采用同步控制的方式保证并发的情况下性能尽可能高,且容易理解。 一、 事务有四个基本特性: 1、原子性(atomicity):数据库操作的最小基本单位,事务内的操作要么都成功,要么都失败,中途不能被打断。 2、一致性(consistency):事务执行后数据从一种状态变成另外一种状态,不会存在事务的一部分数据写入了数据库,一部分没有写入。 3、隔离性(isolation):事务之间独立执行,不相互干扰。 4、持久性(durability):事务一旦提交,对数据库的修改是永久性的,不会改变。 二 、事务隔离 当多个线程同时执行读、算、写操作时,如果不加访问控制,系统势必会产生冲突,举例说明: 并发的时候,事务不断执行,这段时间简称 T 。T上有很多时间点, T0 , T1 , T2 , T3 , T4 , T5 .......... T0 为时间起点,数据库上有一个表user,字段name,point。 事务A:select name,point from user where id =1; 事务B:update user set point=point+1 where id =1; 脏读 :首先事务B开始执行,在T1的时候事务A又开始执行,这个时候B事务并没有提交,事务A查询的值是事务B未提交的值,如果此时B事务回滚,会造成事务A查询到错误数据。这就是脏读。