背景知识:
- mysql事务支持的引擎是InnoDB
- mysql事务的四个特性(ACID),分别是原子性,一致性,隔离性,持久性
1.原子性:事务开启(start transaction)到事务结束(commit / rollback)之间的语句要么全部执行成功,要么全部执行失败,不存在一些语句执行成功,一些语句执行失败。
2.一致性:例如小明有2000元存款,小王有1000元存款,总数是3000元,这时候小明转账给小王1000元存款,小明剩下1000元存款而小王则有2000元存款,但是总数仍然是3000元,这就是一致性的体现
3.持久性:事务一旦提交,对数据的修改是永久的
4.隔离性:一个事务对数据库的修改在未提交之前,其他事务是看不见的,如下是事务的四个级别(隔离性由低到高,并发性由高到低):
- 读未提交(read uncommitted)
- 读已提交(read committed)
- 可重复读(repeatable read)
- 可串行化(serializable)
可以通过如下命令查看和设置隔离级别:
5.至于四个隔离级别具体是怎么回事,可以查看这篇博文:隔离级别详细