特性:
原子性:同一个事务中要么都成功,要么都失败
隔离性:并发操作时,多个事务之间要进行隔离,互不干扰
一致性:事务前后的数据完整性必须保持一致
持久性:事务提交后,不可回滚
不考虑隔离性会发生以下情况:
脏读:一个事务读取到另一个事务未提交的数据
不可重复读:一个事务中两次查询结果不一致(update操作下存在)
虚读:一个事务中两次查询结果不一致(insert操作下存在)
通过设置隔离级别可以解决以下问题
读未提交:级别最低,会出现上述集中情况
读已提交:可以避免脏读,oracle数据库默认级别
可重复读:可以避免脏读、不可重复读,mysql默认隔离级别
串行化:可以避免脏读,不可重复读,虚读(建议使用)