事务隔离级别及其缺陷

事务隔离级别/缺陷 脏读 不可重复读 幻读
读未提交(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 发布!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容