浅谈数据库事务
在这之前,先说一下什么是事务?
事务: 业务中的一组操作,要么全成功,要么全失败,不可分割的工作单位
之后, 再说一下事务的四大特性?
原子性:不可分割的工作单位,要么全成功,要么全失败
一致性:一个事物执行前后,表中数据必须保持一致
隔离性:一个事物执行前后,不被其他事物干扰
持久性:事务一旦提交,数据库中的数据必须永久保存下来
继续说一下事务的四种隔离级别?
读未提交:任何问题都没有解决
读已提交:解决了脏读
可重复读:解决了脏读,不可重复读
串行化: 解决了脏读,不可重复读,虚读
解释:
1.脏读: 一个事物读取到另一个事务未提交的数据
2.不可重复读: 一个事物读取到另一个事物已经提交的数据,通常为 update时引发的问题
3.虚读(幻读): 一个事物读取到另一个事物已经提交的数据, 通常为 insert 或 delete 引发的问题