Mysql事务
上一篇 /
下一篇 2013-03-04 16:43:02
/ 个人分类:Mysql
- MyISAM之类的存储引擎使用了数据表级的锁定机制来保证不同的发客户不能修改同一个数据表,但这种做法在更新量比较大的系统上会导致并发性能的下降
- InnoDB存储引擎采用了另一种策略,它使用了数据行级的锁定机制为客户对数据表的访问提供了更细致的控制
- InnoDB存储引擎提供了多种不同隔离级别以允许或预防在多个事务同时运行时可能发生的各种各样的问题
- 脏读:指某个事务所作出的修改在它尚未被提交时就可以被其他事务看到
- 不可重复读取:指同一事务使用同一条select语句每次读取到的结果不一样
- 幻影数据行:指某个事务突然看到了一个它以前没有见过的数据行
- 4种隔离级别
- READ UNCOMMITTED 允许某个事务看到其他事务未提交的数据行改动
- READ COMMITTED只允许某个事务看到其他事务已经提交的数据行改动
- REPEATABLE READ如果某个事务两次执行同一个select语句,其结果可重复的
- SERIALIZABLE:某个事务正在查看的数据行不允许其他事务修改,直到该事务完成为止
隔离级别 | 脏读 | 不可重复读取 | 幻影数据行 |
READ UNCOMMITTED | 是 | 是 | 是 |
READ COMMITTED | 否 | 是 | 是 |
REPEATABLE READ(InnoDB默认隔离级别) | 否 | 否 | 否 |
SERIALIZABLE | 否 | 否 | 否 |
收藏
举报
TAG: