MySQL事务处理与并发访问_第1页
MySQL事务处理与并发访问_第2页
MySQL事务处理与并发访问_第3页
MySQL事务处理与并发访问_第4页
MySQL事务处理与并发访问_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、项目项目7 MySQL事务处理与并发事务处理与并发访问访问项目描述任务解析相关知识任务实施任务小结1、项目描述、项目描述该项目的具体任务包括:该项目的具体任务包括:(1)查询、修改、理解)查询、修改、理解MySQL默认的事务隔离级别。默认的事务隔离级别。(2)查询、理解)查询、理解MySQL的并发连接数。的并发连接数。(3)查询、理解)查询、理解MySQL锁的争夺情况。锁的争夺情况。2、任务解析、任务解析理解什么是数据库的事务及其性质理解什么是数据库的事务及其性质MySQLMySQL的事务处理的方法的事务处理的方法MySQLMySQL的并发访问及其应用的并发访问及其应用3、相关知识、相关知识相

2、关术语:相关术语:数据库数据库数据库系统数据库系统数据库管理系统数据库管理系统数据库服务器数据库服务器数据库语言数据库语言3、相关知识、相关知识数据库的分类:数据库的分类:关系数据库关系数据库非关系数据库非关系数据库3、相关知识、相关知识MySQLMySQL的事务处理的事务处理MySQLMySQL的并发访问的并发访问MySQl事务事务在在MySQLMySQL数据库中,事务(数据库中,事务(TRANSACTIONTRANSACTION)是)是MySQLMySQL数据库管理系统的执行单位,它由有数据库管理系统的执行单位,它由有限的数据库操作序列组成,但也并不是任意限的数据库操作序列组成,但也并不是

3、任意的的MySQLMySQL数据库操作序列都能成为事务。数据库操作序列都能成为事务。简而言之,事务就是一段简而言之,事务就是一段SQLSQL语句的批处理,语句的批处理,但是这个批处理是一个但是这个批处理是一个atomatom(原子),不可(原子),不可分割,要么都执行,要么回滚(分割,要么都执行,要么回滚(rollbackrollback)都不执行。都不执行。MySQl事务的特性事务的特性ACIDAtomicConsistentIsolatedDurableMySQl事务的特性事务的特性原子性(原子性(Autmic):组成事务处理的语句:组成事务处理的语句形成了一个逻辑单元,不能只执行其中的一

4、形成了一个逻辑单元,不能只执行其中的一部分。换句话说,事务是不可分割的最小单部分。换句话说,事务是不可分割的最小单元。比如:银行转帐过程中,必须同时从一元。比如:银行转帐过程中,必须同时从一个帐户减去转帐金额,并加到另一个帐户中,个帐户减去转帐金额,并加到另一个帐户中,只改变一个帐户是不合理的只改变一个帐户是不合理的MySQl事务的特性事务的特性一致性(一致性(Consistency):):在事务处理执行在事务处理执行前后,数据库是一致的。也就是说,事务应前后,数据库是一致的。也就是说,事务应该正确的转换系统状态。比如:银行转帐过该正确的转换系统状态。比如:银行转帐过程中,要么转帐金额从一个帐

5、户转入另一个程中,要么转帐金额从一个帐户转入另一个帐户,要么两个帐户都不变,没有其他的情帐户,要么两个帐户都不变,没有其他的情况况MySQl事务的特性事务的特性隔离性(隔离性(Isolation):):一个事务处理对另一一个事务处理对另一个事务处理没有影响。就是说任何事务都不个事务处理没有影响。就是说任何事务都不可能看到一个处在不完整状态下的事务。比可能看到一个处在不完整状态下的事务。比如说,银行转帐过程中,在转帐事务没有提如说,银行转帐过程中,在转帐事务没有提交之前,另一个转帐事务只能处于等待状态交之前,另一个转帐事务只能处于等待状态MySQl事务的特性事务的特性持久性(持久性(Durabi

6、lity):):事务处理的效果能事务处理的效果能够被永久保存下来。反过来说,事务应当能够被永久保存下来。反过来说,事务应当能够承受所有的失败,包括服务器、进程、通够承受所有的失败,包括服务器、进程、通信以及媒体失败等等。比如:银行转帐过程信以及媒体失败等等。比如:银行转帐过程中,转帐后帐户的状态要能被保存下来。中,转帐后帐户的状态要能被保存下来。MySQl事务的使用情形事务的使用情形只有只有InnoDB /BDB之类的之类的transaction_safe table才支持才支持MYSQL事务。默认的事务。默认的engine MyISAM 是不支持事务的,是不支持事务的,show engine

7、 可以看到支持的和默认的可以看到支持的和默认的engine。可以在。可以在mysqld 加入:加入:default_storage_engine=InnoDB; InnoDB 就是建立表的默认引擎。就是建立表的默认引擎。MySQl的两种事务处理方法的两种事务处理方法用用begin、rollback和和commit实现。实现。begin 用于开始一个事务,用于开始一个事务,rollback 用于用于事务回滚,事务回滚,commit用于事务确认。用于事务确认。直接用直接用set来改变来改变MySQL的自动提交模式。的自动提交模式。MYSQL默认是自动提交的,也就是说一旦默认是自动提交的,也就是说一

8、旦用户提交一个用户提交一个QUERY,系统就直接执行!,系统就直接执行!但可以通过如下方式改变但可以通过如下方式改变MySQL的自动提的自动提交模式以实现交模式以实现MySQL的事务处理的事务处理MySQl的事务隔离级别的事务隔离级别读未提交(读未提交(Read uncommitted)读已提交(读已提交(Read committed)可重复读(可重复读(Repeatable read)可串行化(可串行化(Serializable )MySQl不期望的三种情况不期望的三种情况脏读(脏读(dirty reads):一个事务读取了另一个):一个事务读取了另一个未提交的并行事务写的数据。未提交的并行

9、事务写的数据。不可重复读(不可重复读(non-repeatable reads):一):一个事务重新读取前面读取过的数据,个事务重新读取前面读取过的数据, 发现该数发现该数据已经被另一个已提交的事务修改过。据已经被另一个已提交的事务修改过。幻读(幻读(phantom read):一个事务重新执行):一个事务重新执行一个查询,返回一套符合查询条件的行,一个查询,返回一套符合查询条件的行, 发现发现这些行因为其他最近提交的事务而发生了改变。这些行因为其他最近提交的事务而发生了改变。MySQl的并发访问的并发访问相对于串行访问来说,相对于串行访问来说,MySQL数据库的并发访数据库的并发访问机制能大

10、大增加数据库资源的利用率,提高问机制能大大增加数据库资源的利用率,提高数据库系统的吞吐量,从而可以支持更多的用数据库系统的吞吐量,从而可以支持更多的用户并减少用户等待时间。户并减少用户等待时间。MySQl并发访问可能带来的问题并发访问可能带来的问题脏读脏读不可重复读不可重复读幻读幻读更新丢失(更新丢失(Lost Update)死锁死锁MySQl并发访问的实现并发访问的实现锁锁表级锁表级锁行级锁行级锁4、任务实施、任务实施任务实施:查询和修改事务隔离级别任务实施:查询和修改事务隔离级别MySQL默认事务隔离级别是可重复读(Repeatable read),能够确保不会“幻读”。在shell下用MySQL命令查询MySQL默认事务隔离级别的方法及显示结果任务实施:查询和修改事务隔离级别任务实施:查询和修改事务隔离级别在控制台下查看MySQLInnoDB会话级别的事务隔离级别的方法及显示结果任务实施任务实施:查询并发连接数量查询并发连接数量在在shell下用下用MySQL命令查询命令查询MySQL最大连接(用户)最大连接(用户)数的方法及显示结果数的方法及显示结果任务实施:查询任务实施:查询表级锁争夺情况表级锁争夺情况MySQL的默认存储

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论