事务是什么
事务不是具体的操作,而是一种确保数据完整性和一致性的手段。当你执行一个事务时,你实际上是在告诉数据库:“我要执行一系列的SQL语句,我希望这些语句要么全部成功,要么全部失败,不要出现部分成功的情况”。防止多个用户同时对数据库进行修改时产生的数据不一致问题,例如脏读、不可重复读和幻读。
MySQL事务的四大特性
事务的四大特性ACID是数据库管理系统在处理事务时候重要的原则,他们保证了数据的完整性和一致性,其中包括
1.原子性(Atomicity)
- 事务被视为一个不可分割的工作单位其中的操作要么全都完成,要么全都不完成,
- 如果事务在执行过程中因为某些原因被中断(如系统崩溃),那么已执行的操作会被撤销,这里称为"回滚",数据库将事务回滚到开始前的状态,好像什么都没有发生
- 可以理解为转账,要么我掏钱,钱过去了,要么我没掏钱,钱没过去,不会有我掏钱,钱也没过去的状态
2.一致性(Consistency)
- 事务必须是数据库从一个一致性状态变换到另一个一致性状态
- 一致性确保了事务在开始和结束时,数据库完整性的约束不会被破坏,
- 可以理解为一个账户给另一个账户转账,无论是否成功两个账户相加的总额都不会变
3.持久性(Durabiliy)
- 事务执行完毕后会修改硬盘上的数据,