事务;
概念:对数据的一次操作过程就是一个事务
ROLLBACK:更新但未提交后返回
COMMIT:事务提交
FOR UPDATE 是查询语句中加FOR UPDATE 关键字时,其他事务将不能更新,必须等该查询语句回滚或者提交才能更新 。
事务的特性:
1,原子性
2,一致性
3,隔离性
4,持久性
没有隔离性会出现的几种问题:
1,更新丢失
两个事务同时更新,覆盖了其中一个事务的更新
2,脏读
读取了即将回滚的数据,导致读取异常
3,不可重复读
两次读取数据间隙另一个事务对数据更新并提交,导致两次读取结果不同
4,幻读(虚读)
两次统计整张表的数据过程中其他事务更新提交了表的内容,导致统计结果不同
事务的隔离级别:
1,read uncommitted(读未提交)
写禁止其他事务写,防止更新丢失
2,read committed 读提交
写禁止读,防止脏读
3,repeatable read 可重复读取
读禁止写 防止不可重复读
4,serializable 序列化
读禁止写(表)
mysql 支持四种,默认可重复读
ORACLE 只有读提交和序列化,默认读提交