- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4.serializable(串行化) 这是最高的隔离级别,它通过强制事务排序,使之不可能相互冲突。换言之,它会在每条select语句后自动加上lock in share mode,为每个查询操作施加一个共享锁。在这个级别,可能导致大量的锁等待现象。该隔离级别主要用于InnoDB存储引擎的分布式事务。 9.3.2 事务的隔离级别与并发问题 低级别的事务隔离可以提高事务的并发访问性能,却可能导致较多的并发问题(例如脏读、不可重复读、幻读等并发问题);高级别的事务隔离可以有效避免并发问题,但会降低事务的并发访问性能,可能导致出现大量的锁等待、甚至死锁现象。 脏读(Drity Read):一个事务可以读到另一个事务未提交的数据,脏读问题违背了事务的隔离性原则。 9.3.2 事务的隔离级别与并发问题 不可重复读(Non-repeatable read):同一个事务内两条相同的查询语句,查询结果不一致。 幻读(Phantom Read):同一个事务内,两条相同的查询语句,查询结果应该相同。但是,如果另一个事务同时提交了新数据,本事务再更新时,就会“惊奇的”发现了这些新数据,貌似之前读到的数据是“鬼影”一样的幻觉。 9.3.2 事务的隔离级别与并发问题 9.3.2 事务的隔离级别与并发问题 MySQL支持4种事务隔离级别,在InnoDB存储引擎中,可以使用以下命令设置事务的隔离级别。 set { global | session } transaction isolation level { read uncommitted | read committed | repeatable read | serializable } 9.3.3 设置事务的隔离级别 合理地设置事务的隔离级别,可以有效避免脏读、不可重复读、幻读等并发问题。 9.3.3 设置事务的隔离级别 任务布置13:完成本书场景描述14:脏读现象的任务要求。 任务布置14:完成本书场景描述15:不可重复读现象的任务要求。 任务布置15:完成本书场景描述16:幻读现象的任务要求。 任务布置16:完成本书场景描述17:并发访问性能问题的任务要求。 9.3.3 设置事务的隔离级别 MySQL默认的事务隔离级别为repeatable read,保持事务的隔离级别repeatable read不变,利用间隙锁的特点,对查询结果集施加共享锁(lock in share mode)或者排他锁(for update),同样可以避免幻读现象,同时也不至于降低MySQL的并发访问性能。 任务布置17:完成本书场景描述18的任务要求。 9.3.4 使用间隙锁避免幻读现象 请参看本书的内容 9.4 事务与锁机制注意事项 Thanks 在线教务辅导网: 更多课程配套课件资源请访问在线教务辅导网 3.锁的类型 锁的类型包括读锁(read lock)和写锁(write lock),其中读锁也称为共享锁,写锁也称为排他锁或者独占锁。 9.2.2 MySQL锁机制的基础知识 读锁允许其它MySQL客户机对数据同时“读”,但不允许其它MySQL客户机对数据任何“写” 。 9.2.2 MySQL锁机制的基础知识 写锁不允许其它MySQL客户机对数据同时读,也不允许其它MySQL客户机对数据同时写 。 9.2.2 MySQL锁机制的基础知识 4.锁的钥匙 多个MySQL客户机并发访问同一个数据时,如果MySQL客户机A对该数据成功地施加了锁,那么只有MySQL客户机A拥有这把锁的“钥匙”,也就是说:只有MySQL客户机A能够对该锁进行解锁操作。 9.2.2 MySQL锁机制的基础知识 5.锁的生命周期 锁的生命周期是指在同一个MySQL服务器连接内,对数据加锁到解锁之间的时间间隔。 9.2.2 MySQL锁机制的基础知识 任何针对MyISAM表的查询操作或者更新操作,都会隐式地施加表级锁,隐式锁的生命周期非常短暂,且不受数据库开发人员的控制。 9.2.3 MyISAM表的表级锁 有时需要延长表级锁的生命周期,MySQL为数据库开发人员提供了显示地施加表级锁以及显示地解锁的MySQL命令。 9.2.3 MyISAM表的表级锁 9.2.3 MyISAM表的表级锁 注意事项: read与write选项的功能在于施加表级读锁还是表级写锁。 MySQL客户机A使用lock tables命令可以同时为多个表施加表级锁(包括读锁或者写锁),并且加锁期间,MySQL客户机A不能对“没有锁定的表”进行更新及查询操作,否则将抛出“表未被锁定”的错误信息。 9.2.3 MyISAM表的表级锁 如果需要为同一个表同时施加读锁与写锁,需要为该表起两个别名,以区分读锁与写锁。 9.2.3 MyISAM表的表级
您可能关注的文档
- MATLAB仿真及电子信息应用 王亚芳 第3章 MATLAB计算新.ppt
- MATLAB仿真及电子信息应用 王亚芳 第4章 MATLAB编程基础新.ppt
- MATLAB仿真及电子信息应用 王亚芳 第6章 MATLAB在信号与系统中的应用新.ppt
- MATLAB基础与应用教程 蔡旭晖 刘卫国 蔡立燕 第1章新.ppt
- MATLAB基础与应用教程 蔡旭晖 刘卫国 蔡立燕 第2章新.ppt
- MATLAB基础与应用教程 蔡旭晖 刘卫国 蔡立燕 第4章新.ppt
- MATLAB基础与应用教程 蔡旭晖 刘卫国 蔡立燕 第5章新.ppt
- MATLAB基础与应用教程 蔡旭晖 刘卫国 蔡立燕 第6章新.ppt
- MATLAB基础与应用教程 蔡旭晖 刘卫国 蔡立燕 第10章新.ppt
- MATLAB基础与应用教程 蔡旭晖 刘卫国 蔡立燕 第12章新.ppt
- Office 2003办公软件应用立体化教程 牟春花 金红旭 班级家长会新.ppt
- Office 2003办公软件应用立体化教程 牟春花 金红旭 办公会议纪要新.ppt
- Office 2003办公软件应用立体化教程 牟春花 金红旭 办公礼仪新.ppt
- Office 2003办公软件应用立体化教程 牟春花 金红旭 毕业设计新.ppt
- Office 2003办公软件应用立体化教程 牟春花 金红旭 策略推荐演示文稿新.ppt
- Office 2003办公软件应用立体化教程 牟春花 金红旭 茶园管理系统软件演示文稿新.ppt
- Office 2003办公软件应用立体化教程 牟春花 金红旭 产品分析新.ppt
- Office 2003办公软件应用立体化教程 牟春花 金红旭 产品概况新.ppt
- Office 2003办公软件应用立体化教程 牟春花 金红旭 产品调查表新.ppt
- Office 2003办公软件应用立体化教程 牟春花 金红旭 成功12式新.ppt
文档评论(0)