MySQL最佳入门 - MySQL的并发控制

目录

 

MySQL事务处理

什么是事务

事务的四大特性

原子性(Atomicity)

一致性(Consistent)

隔离性(Isolation)

持久性(Durable)

事务举例

多事务执行方式

串行执行

特点

交叉并发执行

特点

同时并发执行

特点

并发执行导致的问题

什么是数据不一致

丢失修改(lost update)

不可重复读(non-repeatable read)

读“脏数据”(dirty read)

并发控制


MySQL事务处理

什么是事务

事务是由一组SQL语句组成的逻辑处理单元。

事务的四大特性

ACID

原子性(Atomicity)

事务是一个原子操作单元,其对数据的修改,要么全部执行,要么全都不执行。

一致性(Consistent)

在事务开始和完成时,数据都必须保持一致状态。

隔离性(Isolation)

数据库系统提供一定的隔离机制,保证事务在不受外部并发操作影响的“独立”环境执行,这意味着事务处理过程中的中间状态对外部是不可见的,反之亦然。

持久性(Durable)

事务完成之后,他对于数据的修改是永久性的,即使出现系统故障也能够保持。

事务举例

多事务执行方式

多请求多操作时应该如何处理:

串行执行

最简单的处理方式,代表同一时间只有一个事务执行,如果有四件事,需要做一个队列,谁先进队列处理谁,一个一个来。

比如,开了一个窗口的银行,然后取票排队处理业务。

特点

  • 同一时间只有一个事务执行
  • 效率低,无法充分利用资源

交叉并发执行

比如:a客户填表,b客户可以处理业务。b客户处理完,b去填表,a处理业务。

利用任务等待时间,交叉并发执行。

特点

  • 多事务交叉运行
  • 单处理器的并发方式

同时并发执行

比如:银行开多个窗口,每个窗口都能处理客户的业务,效率最高。

就像计算机多核,就可以处理多个运算。

特点

  • 多处理器系统中使用
  • 每个处理器处理一个事务

并发执行导致的问题

  • 并发势必面临“同读同写”问题;
  • “同读同写”导致破坏事务隔离性和数据不一致;

什么是数据不一致

丢失修改(lost update)

丢失修改是指事务1与事务2从数据库中读入同一数据并修改。事务2的提交结果破坏了事务1提交的结果,导致事务1的修改被丢失;

不可重复读(non-repeatable read)

不可重复读是指事务1读取数据后,事务2执行更新操作,使事务1无法再现前一次的读取结果。

读“脏数据”(dirty read)

读“脏”数据是指事务1修改某一数据并写回,然后事务2读取该数据。事务1由于某种原因被撤销,数据恢复原值。导致事务2读取的数据为错误数据,也就是“脏数据”。

并发控制

  • 对并发操作进行正确正确调度;
  • 保证事务的隔离性;
  • 保证数据的一致性;
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值