mysql并发ppt_MySQL事务处理与并发访问.ppt

本文详细解读了MySQL事务的基本概念,包括原子性、一致性、隔离性和持久性,展示了如何在InnoDB环境下设置事务隔离级别,查询并发连接数,以及理解锁的争夺情况。通过实例了解并发访问的利弊和MySQL并发控制机制。
摘要由CSDN通过智能技术生成

MySQL事务处理与并发访问

项目7 MySQL事务处理与并发访问 项目描述 任务解析 相关知识 任务实施 任务小结 1、项目描述 该项目的具体任务包括: (1)查询、修改、理解MySQL默认的事务隔离级别。 (2)查询、理解MySQL的并发连接数。 (3)查询、理解MySQL锁的争夺情况。 2、任务解析 理解什么是数据库的事务及其性质 MySQL的事务处理的方法 MySQL的并发访问及其应用 3、相关知识 相关术语: 数据库 数据库系统 数据库管理系统 数据库服务器 数据库语言 3、相关知识 数据库的分类: 关系数据库 非关系数据库 3、相关知识 MySQL的事务处理 MySQL的并发访问 MySQl事务 在MySQL数据库中,事务(TRANSACTION)是MySQL数据库管理系统的执行单位,它由有限的数据库操作序列组成,但也并不是任意的MySQL数据库操作序列都能成为事务。 简而言之,事务就是一段SQL语句的批处理,但是这个批处理是一个atom(原子),不可分割,要么都执行,要么回滚(rollback)都不执行。 MySQl事务的特性 ACID Atomic Consistent Isolated Durable MySQl事务的特性 原子性(Autmic):组成事务处理的语句形成了一个逻辑单元,不能只执行其中的一部分。换句话说,事务是不可分割的最小单元。比如:银行转帐过程中,必须同时从一个帐户减去转帐金额,并加到另一个帐户中,只改变一个帐户是不合理的 MySQl事务的特性 一致性(Consistency):在事务处理执行前后,数据库是一致的。也就是说,事务应该正确的转换系统状态。比如:银行转帐过程中,要么转帐金额从一个帐户转入另一个帐户,要么两个帐户都不变,没有其他的情况 MySQl事务的特性 隔离性(Isolation):一个事务处理对另一个事务处理没有影响。就是说任何事务都不可能看到一个处在不完整状态下的事务。比如说,银行转帐过程中,在转帐事务没有提交之前,另一个转帐事务只能处于等待状态 MySQl事务的特性 持久性(Durability):事务处理的效果能够被永久保存下来。反过来说,事务应当能够承受所有的失败,包括服务器、进程、通信以及媒体失败等等。比如:银行转帐过程中,转帐后帐户的状态要能被保存下来。 MySQl事务的使用情形 只有InnoDB /BDB之类的transaction_safe table才支持MYSQL事务。默认的engine MyISAM 是不支持事务的,show engine 可以看到支持的和默认的engine。可以在[mysqld] 加入:default_storage_engine=InnoDB; InnoDB 就是建立表的默认引擎。 MySQl的两种事务处理方法 用begin、rollback和commit实现。begin 用于开始一个事务,rollback 用于事务回滚,commit用于事务确认。 直接用set来改变MySQL的自动提交模式。MYSQL默认是自动提交的,也就是说一旦用户提交一个QUERY,系统就直接执行!但可以通过如下方式改变MySQL的自动提交模式以实现MySQL的事务处理 MySQl的事务隔离级别 读未提交(Read uncommitted) 读已提交(Read committed) 可重复读(Repeatable read) 可串行化(Serializable ) MySQl不期望的三种情况 脏读(dirty reads):一个事务读取了另一个未提交的并行事务写的数据。? 不可重复读(non-repeatable reads):一个事务重新读取前面读取过的数据, 发现该数据已经被另一个已提交的事务修改过。? 幻读(phantom read):一个事务重新执行一个查询,返回一套符合查询条件的行, 发现这些行因为其他最近提交的事务而发生了改变。 MySQl的并发访问 相对于串行访问来说,MySQL数据库的并发访问机制能大大增加数据库资源的利用率,提高数据库系统的吞吐量,从而可以支持更多的用户并减少用户等待时间。 MySQl并发访问可能带来的问题 脏读 不可重复读 幻读 更新丢失(Lost Update) 死锁 MySQl并发访问的实现 锁 表级锁 行级锁 4、任务实施 任务实施:查询和修改事务隔离级别 MySQL默认事务隔离级别是可重复读(Repeatable read),能够确保不会“幻读”。在shell下用MySQL命令查询MySQL默认事务隔离级别的方法及显示结果 任务实施:查询和修改事务隔离级别 在控制台下查看MySQLInnoDB会话级别的事务隔离级别的方法及显示结果 任务实施:查询并发连接数量 在shell下用MySQL命令查询MySQL最大连接(用户)数的方法及显示结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值