一、事务四大特性(ACID):
原子性(Atomicity):当前事务的操作要么同时成功,要么同时失败。原子性由undo log日志来保证,undo log记载着数据修改前的信息,undo log可用于对事务进行回滚
隔离性(Isolation):在事务「并发」执行时,他们内部的操作不能互相干扰。如果多个事务可以同时操作一个数据,那么就会产生脏读、重复读、幻读的问题。事务与事务之间需要存在「一定」的隔离。在InnoDB引擎中,定义了四种隔离级别供我们使用。
持久性(Durability):一旦提交了事务,它对数据库的改变就应该是永久性的。持久性由redo log 日志来保证,当我们要修改数据时,MySQL是先把这条记录加载到内存中,将对应记录进行修改,内存写完了,会写一份到redo log,即便内存修改完了就挂了,我们还可以根据redo log来对数据进行恢复。
一致性(Consistency):「一致性」可以理解为我们使用事务的「目的」,而「隔离性」「原子性」「持久性」均是为了保障「一致性」的手段
二、四种隔离级别
读未提交(read uncommit):事务B读取到了事务A还没提交的数据,如果事务A回滚了,就会读到不正确的数据,产生脏读。
<