事物的四大特性,即常说的ACID:
1、原子性(Atomic):指的是事物所有的操作要么全做、要么全不做。
2、一致性(Consistency):事物应该确认数据库从一个一致状态转变为另一个一致状态。(数据库中的数据应满足完整性约束)
3、隔离性(Isolation):指的是多个事物并发执行的时候、一个事物的执行不应当影响到其它的事物、即事物与事物之间是隔离的。
4、持久性(Durability):指的是一个事物一旦提交、它对数据库的修改应该永久保存在数据库中。
说完了事物、说一下事物并发引起的问题:
1、更新丢失---即一个事物的更新覆盖了另一个事物的更新。导致另一个事物的更新丢失。
比如、你和你妻子共同有个银行账户、里面原来有1000块钱、你这个月发工资了、把你的4300块钱
的工资存入了银行,本来应该有5300块钱的工资。但是在这个过程中、你妻子去取钱、她想取500
买个口红、结果取得过程中、银行的取钱系统出故障了、导致数据回滚、然后银行的账户变成了
1000、这个时候你存入的4300块钱就不莫得了。
2、脏读---指的是一个事物读到了另一个事物未提交的数据。
还是上面的场景、当你存钱的时候、你妻子正在查询余额、这个时候你还没存成功、你妻子查询出
来的账户余额有5300、然后存钱系统出故障了,导致存钱失败。你妻子看钱多了、打算买了1500的
口红、但是取得时候提示余额不足。所以你晚上回去就跪搓衣板了。
3、不可重复读 --- 在一个事物中、对同一数据进行两次读取。但是读取到的结果不一致。
上面的场景重现、在你存钱之前、你妻子想把账户里面所有的钱取出来。但是忘了账户里面还有多
少钱、查询了一下还有1000,这个时候你不是存钱了而是打算取100块钱买包烟