数据库的事物 :
事物(Transaction) : 逻辑上对一组事物的操作 , 要么全部成功 , 要么全部失败。
事物的ACID :
原子性(Atomicity) :
原子性是指事物的不可分割的工作单位,事物中的操作要么全都成功要么全都
失败。
一致性(Consistency) :
事物操作前后的数据的一致性应该保持一致 。
拿银行转账举例子,当A转账给B的时候,转账过程中突然断电,那么A转账失
败后的钱会退回到A账户中,而不会因为失败而导致转账金额丢失。
隔离性(Isolation) :
事物的隔离性就是值,在多个用户并发访问数据库的时候,一个用户的事物操
作不会被另一个用户的事物操作干扰。
持久性(Durbility):
持久性就是指一个事物一旦被提交,它对数据库的改变就行永久的,接下来发
生的即使数据库发生故障也不会对其有任何影响。
隔离级别
1.脏读:
一个事物读取到另一个未提交的事物。
2.不可重复读:
一个事物操作中俩次读取同一行数据,读取的数据不一致
3 . 虚读/幻读:
一个事物读取到另一个已经提交的事物,引发另外一个事物中
多次查询的结果不一致
MySQL的事物隔离级别
1 . read uncommitted
存在问题(脏读,不可重复读,虚读)
2 . read committed
存在问题(不可重复读,虚读)
解决:脏读
3 . repeatable read
存在问题(虚读)
解决:脏读,不可重复读
4 .serializable
解决:脏读,不可重复读,虚读
mysql的默认隔离级别是:repeatabel read