当前位置: 首页 > news >正文

网站建设网络科技公司加盟搜索引擎营销的案例

网站建设网络科技公司加盟,搜索引擎营销的案例,快速搭建一个网站,房屋中介网站模板目录 1 事务四大特性ACID 1.1 原子性Atomicity 1.2 一致性Consistent 1.3 隔离性Isolation 1.4 持久性Durable 2 事务并发处理带来的问题 2.1 更新丢失(Lost Update)或者脏写 2.2 脏读(Dirty Reads) 2.3 不可重复读(No…

目录

1 事务四大特性ACID

1.1 原子性Atomicity

1.2 一致性Consistent

1.3 隔离性Isolation

1.4 持久性Durable

2 事务并发处理带来的问题

2.1 更新丢失(Lost Update)或者脏写

2.2 脏读(Dirty Reads)

2.3 不可重复读(Non-Repeatable Reads)

2.4 幻读(Phantom Reads)

3 事务的隔离级别

3.1 读未提交

3.2 读已提交

3.3 可重复读

3.4 串行化

4 事务相关的系统表

5 开启事务的方式


1 事务四大特性ACID
1.1 原子性Atomicity
  • 同一事物内的多个操作是原子操作
  • 要么同时成功,要么同时失败

  • undo日志保证了原子性
1.2 一致性Consistent
  • 在事务开始时和结束时,数据都始终保持一个有效的状态
  • 一致性由原子性,隔离性,持久性共同保证

1.3 隔离性Isolation
  • 数据库提供一定的隔离机制,保证事务内在不受外部并发操作影响
  • 事务处理过程中的中间状态对外是不可见的

  • undo日志保证了隔离性
1.4 持久性Durable
  • 事务完成后,对于数据的修改是持久性的
  • 即使出现系统故障也能够保持

  • redo日志+数据文件保证了持久性
2 事务并发处理带来的问题
2.1 更新丢失(Lost Update)或者脏写
  • 多个事务对同一行数据某个字段更新时,覆盖了其他事务更新的数据
  • 不符合一致性

2.2 脏读(Dirty Reads)
  • 事务A正在对数据进行修改,在事务提交前,数据处于不一致性状态
  • 事务B读取数据,如果读到了事务A未提交的数据,则为脏读
  • 读到了其他事务未提交数据
  • 不符合一致性和隔离性
2.3 不可重复读(Non-Repeatable Reads)
  • 一个事务内两次读取数据,由于两次读取期间数据被其他事务修改,导致两次数据读取结果不一致的现象,导致了不可重复读
  • 读到其他事务已提交数据
  • 不符合隔离性
2.4 幻读(Phantom Reads)
  • 一个事务内两次读取数据,由于两次读取期间数据其他事务新插入了数据,导致第二次读读取结果比第一次多的现象,产生了幻读
  • 读到了其他事务插入数据
  • 不符合隔离性

3 事务的隔离级别

隔离级别

不可重复

幻读

更新丢失

读未提交

×

×

×

×

提交

×

×

×

可重复

×

×

串行化

  • 查看事务隔离级别
SHOW VARIABLES LIKE 'transaction_isolation';

  • 设置事务隔离级别
SET SESSION TRANSACTION ISOLATION LEVEL [READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE];

3.1 读未提交

不可重复读问题分析

操作

事务A

事务B

设置隔离级别

开启事务

事务A

事务B更新数据

事务A再次

读取到了事务B提交的更新,产生脏读问题

3.2 读已提交

脏读问题分析

操作

事务A

事务B

设置隔离级别

开启事务

事务A

事务B更新数据

事务A再次

事务B未提交更新读取不到解决脏读问题

事务B提交

事务A再次

读取到了事务B已提交更新

产生重读问题

3.3 可重复读

幻读问题分析

操作

事务A

事务B

设置隔离级别

开启事务

事务A

事务B更新数据提交

事务A再次

事务B提交更新读取不到

解决不重读问题

事务B重新开始插入数据

事务A再次

事务B提交插入读取不到

看似解决了幻读问题

但是继续如下操作

事务A更新事务B插入数据

显示更新成功了

事务A再次

读取到了事务B插入数据

产生幻读问题

3.4 串行化

幻读失问题分析

操作

事务A

事务B

设置隔离级别开启事务

事务A读

此时已经数据加上了S锁

事务A插入数据

此时给表加上X

事务B读取数据

此时由于事务A给表加X锁

事务B查询会挂起直至超时失败或者事务A提交

解决了幻读问题

更新丢失问题分析

操作

事务A

事务B

设置隔离级别开启事务

事务A给表加S锁

事务B给表加S锁

事务A更新数据

由于S存在更新挂起

事务B更新数据

此时由于产生死锁,事务B被重启

4 事务相关的系统表
information_schema.INNODB_TRX
information_schema.PROCESSLIST
performance_schema.processlist
performance_schema.threads

5 开启事务的方式
begin;
START TRANSACTION;

http://www.dtcms.com/a/532670.html

相关文章:

  • 关于SN29500学习笔记---如何根据该标准计算实际FIT
  • Git 中忽略 Mac 生成的 .DS_Store文件
  • C# 结合Redis Cache 访问MySQL数据库
  • 深圳做网上商城网站手机网站广告代码
  • 自己公司内网网站和外网怎么做同步手机触屏版网站开发
  • 2025年渗透测试面试题总结-218(题目+回答)
  • 伍佰亿门户网站莱芜翰林名苑莱芜论坛
  • 自动化测试——常见的函数
  • 钢结构东莞网站建设263企业邮箱登官网
  • Merton模型与期权定价
  • 谷歌怎么做网站优化贵州网络科技有限公司
  • MySQL(安装和卸载、数据库存储原理图)
  • 明珠信息港网站建设专家建设银行签名通在网站哪里下载
  • 网站开发一般分为几个步骤好用的做网站的app
  • 阮一峰《TypeScript 教程》学习笔记——运算符
  • 协作协议(Collaborative Protocols)——下一代人机协作操作系统的工程化实践
  • I2C 驱动 --- 控制器
  • 创意网站设计团队郑州百度推广托管
  • 网盘做网站空间杭州简单网技术有限公司
  • TensorFlow学习入门
  • 强电控制器-非正常工作实验
  • 网站修改域名服务器企业静态网站
  • GitHub等平台形成的开源文化正在重塑结帖人
  • 考古并发历史(1)
  • 班级网站设计外国大气网站
  • 深拷贝浅拷贝
  • 样本与样本值
  • 无极网站网站首屏高度
  • ansible自动化运维入门篇-ansible部署
  • 如何在搜索中找到自己做的网站o2o电商交易类平台有哪些