




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10章 事务和锁 微软最有价值专家(MVP) IT集成课程视频教学下载地址 本章内容 o 10.1 事务(Transact)介绍 o 10.2 事务的特性 o 10.3 事务的类型 o 10.4 事务控制语句 o 10.5 事务并发产生的问题 o 10.6 锁 表级锁 行级锁 o 10.7 事务和锁综合练习 10.1事务(Transact)介绍 o 事务是指一个逻辑单元的工作任务,这些工 作任务要么全做,要么全部放弃。 o 它必须同时满足四个特性: n 原子性 n 一致性 n 隔离性 n 持久性 10.2事务特性1 o 原子性(Atomic) n 表示组成一个事务的多个数据库操作是一个不 可分隔的原子单元,只有所有的操作执行成功 ,整个事务才提交,事务中任何一个数据库操 作失败,已经执行的任何操作都必须撤销,让 数据库返回到初始状态。 o 一致性(Consistency) n 事务操作成功后,数据库所处的状态和它的业 务规则是一致的,即数据不会被破坏。 事务特性2 o 隔离性(Isolation) n 在并发数据操作时,不同的事务拥有各自数据 空间,它们的操作不会对对方产生干扰。数据 库规定了多种事务隔离级别,不同隔离级别对 应不同的干扰程度,隔离级别越高,数据一致 性越好,但并发性越弱。 o 持久性(Durabiliy) n 一旦事务提交成功后,事务中所有的数据操作 都必须被持久化到数据库中,即使提交事务后 ,数据库马上崩溃,在数据库重启时,也必须 能保证能够通过某种机制恢复数据。 10.3事务类型1 o 自动提交事务 n 系统默认每个TRANSACTSQL命令都是一个 事务处理,由系统自动开始并提交 o 隐式事务:不需要显示开始事务,需要显示提交 n 该类事务是任何单独的 INSERT、UPDATE 或 者DELETE语句构成。当有大量的DDL和DML 命令执行时会自动开始,并一直保持到用户明 确提交为止。 事务类型2 o 显式事务 n 该类事务是用户自定义事务,是以START TRANSACTION(事务开始)开头,以 COMMIT TRANSACTION(事务提交)或者 ROLLBACK TRANSACTION(回滚事务)语句 结束的。 o 分布式事务 n 跨越多个服务器的事务称为分布式事务。自从 mySQL5.03就开始支持分布式事务。 10.4事务控制1 o START TRANSACTION 该语句标记一个显式事务的开始点,即事务开始。 其语法如下: START TRAN | TRANSACTION transaction_name | tran_name_variable WITH MARK description ; o COMMIT TRANSACTION 该语句标志一个成功的隐性事务或显式事务的结束 ,即事务提交。其语法如下: COMMIT TRAN | TRANSACTION transaction_name | tran_name_variable ; .事务控制2 o ROLLBACK TRANSACTION 该语句将显式事务或隐性事务回滚到事务的起点或事务内的某个 保存点。其语法如下: ROLLBACK TRAN | TRANSACTION transaction_name | tran_name_variable | savepoint_name | savepoint_variable ; o SET AUTOCOMMIT 可以修改当前连接事务 提交方式。 SET AUTOCOMMIT=0,则需要明确的命令进行提交或者回滚。 10.5 数据并发的问题1 o 1.脏读(Dirty Read) n 脏读是指某个事务(A)读取另外事务(B)尚 未提交的更改数据,并在这个数据的基础上操 作。如果恰巧 B事务回滚,那么 A事务读到的数 据根本是不被承认的。 o 2.不可重复读(Unrepeatable Read) n 不可重复读是指 A事务读取了 B事务已经提交的 更改数据。 数据并发的问题2 o 3. 幻象读(Phantom Read) n A事务读取B事务提交的新增数据,这时 A事务 将出现幻象读的问题。 o 4. 第一类丢失更新 n A事务撤销时,把已经提交的B事务的更新数据 覆盖了。 o 5. 第二类丢失更新 n A事务覆盖B事务已经提交的数据,造成 B事务 所做操作丢失。 10.6 锁(Lock) o 数据库中的锁是指一种软件机制,用来控制 防止某个用户(进程会话)在已经占用了某 种数据资源时,其他用户做出影响本用户数 据操作或导致数据非完整性和非一致性问题 发生的手段。 n 锁概述 n MySQL锁和数据库引擎 n InnoDB和MyISAM支持表级锁 n InnoDB事务实现的行级锁 MySQL锁和数据库引擎 o 相对于其他数据库而言,MySQL的锁机制 比较简单,最显著的特点是不同的存储引擎 支持不同的锁机制。 o MyISAM和MEMORY存储引擎采用表级锁 o DBD存储引擎采用的是页面锁和表级锁。 o InnoDB支持行级锁、表级锁,默认情况采 用行级锁。 三种粒度锁的特性 o 表级锁 n 开销小,加锁快,不会出现死锁,锁定力度大 ,发生冲突所的概率高,并发度低。 o 行级锁 n 开销大,加锁慢,会出现死锁,锁定力度最小 ,发生锁冲突的概率最低,并发度高。 o 页面锁 n 开销和加锁时间介于表锁和行锁之间,会出现 死锁,锁定力度介于表和行行级锁之间,并发 度一般。 MySQL表级锁的锁模式 o 表共享锁(Table Read Lock) o 表独占锁(Table Write) 表级锁 o 给TStudent表和TScore表添加读锁 n lock tables TStudent read,TScore read; n lock tables TStudent read local ,TScore read local; Local参数允许在表尾并发插入 如果加的read锁,只能读取不能够更改数据,并且 只能访问加锁的表。 o 解锁表 n unlock tables 添加表级写锁 o 给TStudent表添加写锁 n lock tables TStudent write MySQL的InnoDB引擎行的锁 o 共享锁(S) InnoDB引擎,共享锁用于所有的只读数据操作 o 独占锁(X) n 为修改数据而保留的,它所锁定的资源,其他事务 不能读取也不能修改。 o 意向共享锁(IS) o 意向独占锁(IX) n 意向锁是InnoDB内部使用的,这两种意向锁都是表 锁,比如事务打算给行加共享锁,先在表上添加IS 锁 锁与SQl语句 o 对于Update Delete和Insert语句 InnoDB 会自动给涉及数据集加排它锁 o 对于select语句InnoDB不加任何锁,可以 显示加锁。 Select * from TStudent2 where studentid=00001 for update S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年上海市简易购销合同范本
- 第五课 学习悄悄话说课稿-2023-2024学年小学心理健康四年级下册大百科版
- 2025装饰装修工程班组劳务分包合同
- 5 管理愤怒情绪说课稿-2025-2026学年小学心理健康浙教版六年级上册-浙教版
- 第6课 现代科技进步与人类社会发展 教学设计-2024-2025学年高二历史统编版(2019)选择性必修2 经济与社会生活
- 第九课 太阳能能源调查-电子表格的制作教学设计-2025-2026学年初中信息技术(信息科技)七年级上浙教版(广西、宁波)
- 校园食堂厨师承包管理协议
- 民营医院护理部护士岗位聘用与护理人文关怀协议
- 境外项目执行人员派遣与安全责任合同
- 物业服务合同终止及社区环保设施建设协议
- 收费站岗位安全操作培训课件
- 鼻炎的培训知识课件
- 2025年安徽省农业职业技能大赛(水生物病害防治员)备赛试题库(含答案)
- 江苏省南通市各县区乡镇行政村村庄村名居民村民委员会明细
- 中国古典乐器-古筝琵琶英文介绍(带翻译)课件
- 地表形态塑造内力作用说课
- QSY02553-2018井下作业井控技术规范
- 苏教版(新教材)三年级上册小学科学第二单元测试卷含答案
- 音乐 认识音乐课件
- 职业健康检查管理办法-解读课件
- 产生你的企业想法课件
评论
0/150
提交评论