MySQL的特性和隔离级别及并发产生的问题

MySQL的特性和隔离级别及并发产生的问题
 
ACID四大特性:
         第一, 原子性,原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚。失败回滚的操作事务,将不能对事物有任何影响。
         第二, 一致性,一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。数据库状态如何变化?每一次数据变更就会导致数据库的状态迁移。
         第三, 隔离性,隔离性是指当多个用户并发访问数据库时,比如同时访问一张表,数据库每一个用户开启的事务,不能被其他事务所做的操作干扰,多个并发事务之间,应当相互隔离。
         第四, 持久性,持久性是指事务的操作,一旦提交,对于数据库中数据的改变是永久性的,即使数据库发生故障也不   能丢失已提交事务所完成的改变。
 
四个隔离级别:
 
         读已提交
         读未提交
         可重复读
         顺序读
 
并发引发的问题:
        
         脏读:
         进程一开启事务之后,对数据库某一块数据进行修改操作,但并未提交,这个时候进程二也开启事务对进程一修改后的数据进行读取并提交,但是进程一突然进行了回滚到未修改前状态,那么此时进程二所获得的数据是错误的
        不可重复读:
        进程一开启事务第一次对数据库某一块数据进行读取,但并未提交,同时,进程二开启事务对数据库同一块数据进行修改操作,并提交,此时,进程一再次对数据库该数据进行二次读取,这时就会发现,进程一两次读取的结果不一致
        幻读:
        进程一开启事务第一次对数据库某块数据的原有字段的相应值进行修改操作,但并未提交,与此同时,进程二开启事务对同一数据块进行增加或删除字段操作,并提交。当进程一提交的时候就会发现存在未修改的字段或者原来的字段值没了。