mysql-事务管理(进阶)--待续

栏目: 数据库 · 发布时间: 6年前

内容简介:A->B(A给B转账100)正常mysql流程:当数据库上有多个事务同时执行的时候,就可能出现脏读(dirty read)、不可重复读(non-repeatable read)、幻读(phantom read)的问题,为了解决这些问题,就有了“隔离级别”的概念。

请口述以下问题:

  1. 什么是事务到特性,具体说说你到理解
  2. 请举一个案例描述为什么要用到事务(转账)
  3. 事务的隔离级别
  4. 待续。。。

1、事务到特性(ACID)

  • Atomicty 原子性
    事务不可再分。
    现实中的一个需求,由多条 SQL 实现时,现实中的一件事只有两种结果,要么成功要么失败。事务机制就实现了将多条sql“当成”一条sql来执行,通过这种机制加上人为的判断,实现多条sql要么都成功,要第都失败。
  • Consistence 一致性
    事务的执行过程中,对数据表的影响是没有的。
  • Isolation 隔离性
    当一个事件的执行,不会影响其他客户端的数据表中查询到的结果。
  • Duration 永久性
    当一个事务执行交,其影响就是永久的。

A->B(A给B转账100)

正常 mysql 流程:

A账户 B账户
A-100 B+100

可能情况:

情况 A账户 B账户
第一种 A-100 B+100
第二种 A-100 B
第三种 A B+100
第四种 A B

2、隔离性与隔离级别

当数据库上有多个事务同时执行的时候,就可能出现脏读(dirty read)、不可重复读(non-repeatable read)、幻读(phantom read)的问题,为了解决这些问题,就有了“隔离级别”的概念。

SQL标准的事务隔离级别包括:读未提交(read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(serializable )

事务没提交,做等变更别等事务能看到
事务提交了,它做的变更别的事务才能看到
读也加锁啊写也加锁,读写锁冲突,后面的事务等前面事务执行完成再执行,一串

隔离得越严实,效率就会越低。需要找一个平衡点。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

互联网产品运营:产品经理的10堂精英课

互联网产品运营:产品经理的10堂精英课

丁华、聂嵘海、王晶 / 电子工业出版社 / 2017-5 / 59

《互联网产品运营:产品经理的10堂精英课》共有10章,前9章分别从互联网产品运营的9个点入手,最后一章辅以案例,分析当下市场热门产品的运营模式。 第1章点明在运营产品之前需要经过缜密的策划,这样才能有明确的运营方向;第2章讲述产品运营的定位,有了准确的定位,运营才不会走偏;第3章描述用户运营,用户是一款产品的根本,没有用户,产品就是死的;第4章讲述内容运营的技巧,产品内容要怎么运营才能受到用......一起来看看 《互联网产品运营:产品经理的10堂精英课》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器