事务概念:
事务(Transaction),就是将一组SQL语句放在同一批次内去执行,如果一个SQL语句出错,则该批次内的所有SQL都将被取消执行。
特点:一个事务中如果有一个数据库操作失败,那么整个事务的所有数据库操作都会失败,数据库数据就会回滚到该事务开始之前的状态。
限制:MySQL数据库中仅InnoDB和BDB类型的数据库表支持事务。
事务的ACID原则:
原子性:看成一个,要么全部成功,要么全部失败
一致性:在事务开始之前和结束之后,保持一直
隔离性:事务的执行是互不干扰的,一个事务不可能看到其他事务运行时,中间某一时刻的数据。
持久性:一旦事务执行完成之后,都会将数据完整的保存到磁盘
事务的隔离级别
4种隔离级别:
1:读未提交 -- 脏读(看到别人没有提交的数据)
2:不可重复读 -- 两次看到的结果不一样 -- 对于增删改会有问题
3:可重复读 -- 幻读 有的数据时有时无 -- 值对增会有问题
4:串行化 --没有数据问题 --但是效率极低 --会产生大量的锁