Mysql事物
事物这个东西大家应该写过项目的就用过,但是还是要说的
为什么需要事物
现在很多软件都是多用户,多程序,多线程的,对同一张表可能同时有很多人在用,为保持数据的一致性,所以提出了事物的概念...可串行化(serializable)
查询Mysql事物的默认隔离级别
select @@tx_isolation;
?
...Mysql事物的默认隔离级别是repeatable read
事物并发问题
脏读:事物A读取了事物B更新的数据,然后B回滚操作,那么A就读取到了脏数据
不可重复读:事物A多次读取同一数据,事物B在事物A...,当系统管理员A改完之后发现还有没改的,就像幻觉一样,这就是幻读
不可重复读和幻读容易混淆,不可重复读侧重于修改,幻读侧重于新增或删除,解决不可重复读的问题只需锁住满足条件的行,解决幻读需要锁表
//设置当前会话的事物隔离级别...事物隔离级别(总结)
事物隔离级别为可重复读时,如果有索引(包括主键索引)的时候,以索引列为条件更新数据,会存在间隙锁间,行锁,页锁的问题,从而锁住一些行,如果没有索引,更新数据时会锁住整张表;
事物隔离级别为串行化时