事务的特性(隔离级别)
A 原子性 说明事务是不可分割的
C 一致性 从数据库的一致状态改变成另一种一致状态
I 隔离性 一个事务不能被其他事务打扰
D 持久性 事务一旦提交就会永久的被保存到数据库
如果不考虑事务的隔离级别,可能会出现以下情况
1、脏读 : 一个事务读取到了另一个事务为提交的数据。
2、不可重复读:针对同一条记录,前后读取的数据不一样
3、虚读(幻读):针对一张表,前后读到的记录条数不一样
四种隔离级别:
READ UNCOMMITTED: 1 2 3 都有可能发生
READ COMMITTED: 能避免1 2 3可能发生
REPEATABLE READ:能避免12 3可能发生
SERIALIZABLE: 都能避免
MYSQL中控制事务隔离级别的语句:
select @@tx_isolation //查看当前的事务隔离级别
set transaction isolation level 你的级别