数据库隔离级别.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库隔离级别 数据库提供了四种事务隔离级别, 不同的隔离级别采用不同的锁类开来实现. 在四种隔离级别中, Serializa的bl级e 别最高, Read Uncommited级别最低. 大多数数据库的默认隔离级别为: Read Commited如, Sql Server , Oracle. 少数数据库默认的隔离级别为Repeatable Read如, MySQL InnoDB 存储引擎 即使是最低的级别,也不会出现 第一类 丢失 更新问题 . Read Uncommited :读未提交数据( 会出现脏读,不可重复读,幻读 ,避免了 第一类丢失 更新 ) Read Commited :读已提交的数据(会出现不可重复读,幻读) Repeatable Read可:重复读(会出现幻读) Serializabl串e 行: 化 丢失 更新 : 当两个或多个事务选择同一行,然后基于最初选定的值更新该行时,会发生丢失更新问题。每个事务都不知道其它事务的存在。最后的更新将重写由其它事务所做的更新,这将导致数 据丢失。 例: 事务A 和事务B 同时修改某行的值, 1.事务 A 将数值改为1并提交 事务 B 将数值改为2并提交。 这时数据的值为2,事务A 所做的更新将会丢失。解决办法:对行加锁,只允许并发一个更新事务。 脏读: 一个事务读到另一个事务未提交的更新数据例: Mary 的原工资为1000, 财务人员将Mary 的工资改为了8000(但未提交事务) Mary 读取自己的工资 ,发现自己的工资变为了8000,欢天喜地! 而财务发现操作有误,回滚了事务,Mary 的工资又变为了1000, 像这样,Mary 记取的工资数 8000是一个脏数据。 不可重复读: 在同一个事务中,多次读取同一数据,返回的结果有所不同. 换句话说就是, 后续读取可以读到另一个事务已提交的更新数据 . 相反可重复读在同一事务多次读取数据时,能够保证所读数据一样,也就是后续读取不能读到另一事务已提交的更新数据. 例: 在事务1中,Mary 读取了自己的工资为1000,操作并没有完成 在事务2中,这时财务人员修改了 Mary 的工资为2000,并提交了事务. 在事务1中,Mary 再次读取自己的工资时,工资变为了2000 解决办法:如果只有在修改事务完全提交之后才可以读取数据,则可以避免该问题。 幻读: 一个事务读取到另一个事务已提交的inser数t 据. 例: 第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。同时 (此时第一事务还未提交) ,第二个事务向表中插入一行新数据。这时第一个事务再去读取表时,发现表中还有没有修改的数据行,就好象发生了幻觉一样

文档评论(0)

始终如一 + 关注
官方认证
文档贡献者

始终如一输出优质文档!

认证主体苏州市致远互联网科技有限公司
IP属地北京
统一社会信用代码/组织机构代码
91320582MA27GAWJ0R

1亿VIP精品文档

相关文档