java - 数据库事务隔离级别的选择

 王琰杰昔凛 发布于 2022-10-30 03:52

首先感谢进来看的各位,然后有几个问题请教大家(¯﹃¯)
1.为什么ORACLE只支持READ COMMITTEDSERIALIZABLERepeatable Read有严重的缺点?)
2.大部分数据库的默认级别都是READ COMMITTED为什么mysql却选择Repeatable Read
3.大家使用spring的话使用的是哪种事务管理方式?为什么要采用这种方式?
4.如何根据业务确定应该采用那种级别的隔离级别

2 个回答
  • 这个问题好大啊。
    目前说的四种隔离级别是SQL92标准,各个数据库的具体实现不同导致了默认和推荐的隔离级别不同,毕竟现在的数据库都是MVCC实现的,早已不是传统的锁模型了。目前所谓的四种隔离级别其实是对历史SQL标准的妥协,例如Mysql的Repeatable Read其实是Snapshot Isolation,它不允许幻读而且并发下需要用户自己加锁。
    具体用什么,每种隔离级别能做到什么,请看官方手册,不要看教科书或者百度的东西。相信看完你也差不多知道要用哪个了。

    2022-10-31 19:43 回答
  • 请使用MySQL 默认的RR. 在MySQL 官方手册中有极其详细的对隔离级别的说明。

    2022-10-31 19:44 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有