原子性:所有操作要么全部成功,要么全部失败
一致性:例如转账,一个事务执行前和执行后必须一致
隔离性:事物之间互不干扰,防止脏读,重复读问题(多个用户并发操作数据库时,一个用户的事务不能被其他用户的事物所干扰,多个并发事物之间的数据要相互隔离)
持久性:永久性提交数据库
事务隔离级别:
读取未提交:最低的隔离级别,允许读取尚未提交的数据变更,可能会导致脏读,不可重复读,幻读
读取已提交:允许读取并发事务已经提交的数据可以阻止脏读,但是不可重复读和幻读仍有可能发生
可重复读:对同一字段的多次读取结果都是一致的,除非是数据被本身事务所修改,可以阻止脏读和不可重复读,但幻读仍有可能发生
可串行化:最高的隔离级别,完全服从ACID的隔离级别,所有的事物依次逐个执行,这样事务之间就完全不可能产生干扰,也就是说,该级别可以防止脏读、不可重复读和幻读
脏读:一个事务读取到另一个事务中尚未提交的数据
不可重复读:一个事务中两次读取的数据内容不一致,要求的是一个事务中多次读取时数据是一致的,这是事务update时引发的问题
幻读:一次事务中读取到的数据的数量不一致,这是insert、或delete时引发的问腿