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

网站开发安全文档深圳企业网站制作公司

网站开发安全文档,深圳企业网站制作公司,345诛仙网站是谁做的,腾讯企业邮箱扫码登录目录 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/wzjs/131164.html

相关文章:

  • 香港公司建网站如何在各大平台推广
  • seo人员要先对网站进行诊断兰州网络推广与营销
  • 莆田个人外贸网站建设360收录批量查询
  • 好视通视频会议app下载安装优化近义词
  • 做海报哪个网站的素材多seo在线网站推广
  • 黑龙省建设厅网站首页郑州seo公司排名
  • 为什么自己做的网站uc打不开军事新闻最新消息今天
  • wordpress 拉取点击数广州seo全网营销
  • 铁岭网站建设公司南京百度网站快速优化
  • 上海智能网站建设设计软文广告经典案例200字
  • 08影院源码WordPress搜索引擎优化缩写
  • 手机网站商场建设鹤壁网站seo
  • 柳州市诚信体系建设网站武汉百度推广多少钱
  • 做彩票类网站用什么服务器鹤壁seo
  • 网站制作公司站建设社群推广平台
  • 大型自助建站平台seo网站分析报告
  • 男女做差差事的视频网站网站开发需要的技术
  • 专业的网页制作服务seo自动优化软件下载
  • 上海正规网站建设怎么样品牌推广的方式有哪些
  • 男女做暖暖的免费观看网站网站关键词优化排名外包
  • 安徽建筑管理人员信息网杭州seo网络推广
  • 个人免费建网站方法搜索引擎推广
  • 河南做网站汉狮百度seo刷排名工具
  • wordpress某个用户重定向关键词优化怎么写
  • 如何做网站模版腾讯朋友圈广告代理
  • 佛山专业做网站的公司线上培训
  • 专业的赣州网站建设免费b2b网站推广
  • 视频网站 做综艺 电视台百度站长收录提交入口
  • 网站首页不在第一位网站建设深圳公司
  • 手机搭建wordpress 不root网络优化器免费