事务隔离级别及其缺陷

事务隔离级别/缺陷 脏读 不可重复读 幻读
读未提交(read uncommit) 可能 可能 可能
读已提交(read commit) 不可能 可能 可能
可重复读(repeated read) 不可能 不可能 可能
可串行化(Serializable ) 不可能 不可能 不可能

脏读是一个事务读取到另一个事务未提交的数据。比如事务A把学员分数改为1,但是未提交,此时事务B读取到了这个分数,但是事务A把事务回滚了,此时事务B获取到了一个错误的数据

不可重复读是指在一个事务中两次读取的结果不同,比如事务A先获取到了学员分数为1,此时事务B将分数修改为2并提交,然后事务A再次读取学员分数得到2;造成在同一个事务中两次读取的结果不一致;造成不可重复读的操作是update

幻读是指事务A读取与搜索条件相匹配的若干行。事务B以插入或删除行等方式来修改事务A的结果集,然后再提交。比如数据库中存在学员tom的语文,数学成绩,事务根据学员名称去获取成绩查询出了语文,数学两科成绩。但此时事务B向数据库中插入了tom的英语成绩;此时数据造成了事务A的查询结果和实时不符,像出现“幻觉”一样。造成幻读的操作是delete或insert

创作不易,转载请注明文章来源为www.full-satcker.com
本文由博客一文多发平台 OpenWrite 发布!

你可能感兴趣的:(事务隔离级别及其缺陷)