事务的四大特性
1.原子性:事务时一个不可拆分的工作单位,事务中的操作要么全部成功,要么全部失败
2.一致性:事务前后的书籍必须保持一致
3.持久性:事务一旦被提交,它对数据库的改变是永久性的
4.隔离性:事务之间互不干扰
MySQL数据库为我们提供的四种隔离级别:
① Serializable (串行化):可避免脏读、不可重复读、幻读的发生。
② Repeatable read (可重复读):可避免脏读、不可重复读的发生。
③ Read committed (读已提交):可避免脏读的发生。
④ Read uncommitted (读未提交):最低级别,任何情况都无法保证。
级别 名字 | 隔离级别 | 脏读 | 不可重复读 | 幻读 | 数据库默认级别 |
---|---|---|---|---|---|
1 | 读未提交 | 是 | 是 | 是 | |
2 | 读已提交 | 否 | 是 | 是 | Oracle |
3 | 可重复读 | 否 | 否 | 是 | MySQL |
4 | 串行化 | 否 | 否 | 否 |
隔离级别越高,安全性越高,性能(效率)越差
串行化:效率最低,安全性最高
并行化:效率最高,安全性最低