事务
某个时间内一些连续且不可分割的操作集合
事务的基本要素
原子性:事务里的所有操作都是
不可分割的,要么都成功,要么都失败;一致性:事务开始前后,
数据库的完整性约束没有破坏;持久性:事务完成后,事务对数据库的所有更新都将被
保存到数据库,不能回滚;隔离性 :同一时间内,只允许一个事务请求同一数据,不同事务时间彼此没有干扰。
事务的隔离级别
读未提交:
脏读,A修改没有提交,B读取到了,然后A进行回滚,那么B读到的数据就是脏数据;读已提交:
不可重复读,A修改提交,B在A提交前后进行读取,发现前后数据不一致,不能重复读;可重复读:
幻读,A插入数据提交,B在A提交前后进行读取,发现前后数据条目不一致,出现了幻觉;串行化 :强行让事务有序执行
解决不可重复读:只需要锁住单独行即可
解决幻读:间隙锁/MVCC(https://blog.csdn.net/qq_36417014/article/details/108202007)