1.什么是事务
一件事情有n个组成单元,要么这n个组成单元同时成功,要么同时失败
2.事务的特性(ACID)
1)原子性:原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生
2)一致性:是指事务前后数据的完整性必须保持一致
3)隔离性:是指多个用户并发访问数据库时,一个用户的事务不能被其他用户的事务所干扰。多个并发事务之间数据要相互隔离
4)持久性:是指事务一旦被提交,它对数据库中数据的改变是永久性的。
3.并发访问-----由隔离性引起
如果不考虑隔离性,事务存在3种并发访问问题
1)脏读:B事务读取到了A事务尚未提交的数据
2)不可重复读:一个事务中两次读取数据的内容不一致
3)幻读/虚读:一个事务中两次读取数据的数量不一致
4.事务的隔离级别
1)read uncommitted:读取尚未提交的数据------哪个问题都不能解决
2)read committed:读取已提交的数据-----可以解决脏读-----Oracle默认的
3)repeatable read:重复读取---可以解决脏读和不可重复读------MySQL默认的
4)serializable:串行化---可以解决脏读和不可重复读、虚读