Mysql innodb 面试要点记录(三)事务

1.事务特性:(ACID)

A tomicity:原子性—是指整个事务是一个整体,不可分割的最小工作单位。
C onsistency:一致性—指事务将数据从一种状态转换成下一种一致的状态。即事务执行前和事务执行后不能对数据库本身的其他约束和限制产生不一致的结果。比如导致唯一约束丢失等。
I solation:隔离性—要求每个事务的对象对其他事务的操作对象能互相分离,互不影响。即是事务提交前对其他事务都不可见。
D urability:持久性--数据一旦提交,结果就是永久性的。并不应为宕机等情况丢失。

2.事务的分类:

2.1扁平事务:(flat transaction)

  • 所有操作处于同一层次的事务
  • 是程序成为原子操作的基本组成模块
  • 虽然简单,但是是在实际场景中使用最频繁的事务类型

2.2带保存点的扁平事务(flat transaction with save point)

  • 在扁平事务的中间还带有保存点,让系统记住事务当前状态,以便发生错误的时候可以回到保存点当时的状态
  • 扁平事务就是在结束位置隐藏的设有一个保存点
  • 保存点事务的保存点是易失的而非持久的,如果系统发生异常,当恢复时事务需要从头执行
  • 提交后不释放所持有的锁

2.3链式事务(chained transaction)

  • 保存点扁平事务的一种变种
  • 在提交一个事务时,释放不需要的数据对象,将必要的处理上下文隐式的传递给下一个要开始的事务。
  • 提交事务和开始下一个事务将合并为一个原子操作
  • 链式事务回滚只能回复最近一个保存点
  • 链式事务提交将会释放所持有的锁

2.4嵌套事务(Nested Transaction)

  • innodb 不支持
  • 层次结构框架,由若干事务组成的一棵树,子树既可以是嵌套事务,也可以是子事务
  • 由一个顶层事务控制着各个层次的事务
  • 顶层以下的事务被称为子事务,子事务控制着每一个局部变换
  • 叶子节点的事务都是扁平事务
  • 处于根节点的是顶层事务,事务的前驱叫父事务,下一层是儿子事务
  • 子事务可以回滚也可以提交,但是不会立马生效,除非父事务已经提交。因此整个事务只能在顶层事务提交后生效
  • 树种任意一个事务回滚都会引起他的所有子事务回滚,故子事务只有 ACI 特性,不具有持久特性
  • 不同的子事务可以持有不同的锁。但是嵌套事务上下层之间是可以选择是否传递自己持有的锁

2.5分布式事务(distributed transactions)

  • 即分布式节点之间保证 ACID 特性的事务
  • 允许多个独立的事务资源,参与到一个全局事务中
  • 所有参与的事务要么都提交要么都回滚

3事务隔离级别:

隔离级别越低,事务请求的锁越少或保持锁的时间就越短
根据高人研究,SERIALIZABLE 级别的效率并不比 READ UNCOMMITED 低,甚至有可能更优。

3.1READ UNCOMMITED

  • 被成为浏览访问,由于没有任何锁限制。所以脏读,幻读,丢失更新都存在。

3.2READ COMMITED

  • 因为 innodb 在这个级别没有使用 grap lock ,所以幻读情况是存在的。

3.3REPETABLE READ

  • innodb默认事务
  • innodb 因为使用Next-key lock 避免了幻读,所以在这个级别已经实现了 SQL 规范的 SERIALIZABLE 事务隔离级别的要求

3.4SERIALIZABLE

  • SQL SQL2 标准的默认事务级别
  • 在这个级别 innodb 会在每句SELECT后面默认加上LOCK IN SHARE MODE开启共享锁
  • 由于 innodb 在 REPEATABLE READ 级别就实现了避免幻读,所以 SERIALIZABLE 级别通常用在分布式事务情境下

4.innodb 的分布式事务

  • 通过 XA 事务来实现分布式事务
  • 使用时必须使用 SERIALIZABLE 事务隔离级别
  • XA 事务允许不同数据库类型之间的分布式事务,比如 SqlServer 与 innodb 搭配使用

4.1XA 事务

  • 由一个或者多个资源管理器、一个事务管理器以及一个应用程序组成

4.1.1资源管理器:

  • 提供访问事务资源的方法
  • 通常一个数据库就是一个资源管理器

4.1.2事务管理器:

  • 协调参与全局事务的各个事务
  • 需要和参与到全局事务的所有资源管理器通信

4.1.3应用程序:

  • 定义事务的边界
  • 指定全局事务中的操作

4.1.3XA使用的两段式提交流程:

  • 所有全局事务节点开始准备,并告诉事务管理器准备提交了
  • 事务管理器再告诉节点是回滚还是提交
  • 如果任何一个节点不能提交,则全部回滚

Mysql innodb 面试要点记录(二)锁

Mysql innodb 面试要点记录(一)缓冲和索引

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,319评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,801评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,567评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,156评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,019评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,090评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,500评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,192评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,474评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,566评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,338评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,212评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,572评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,890评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,169评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,478评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,661评论 2 335

推荐阅读更多精彩内容

  • 地址:广州市越秀区 图书馆大门 建筑风格以民国风为主的现代化图书馆。 藏书量丰富,以地方文献为特色,是一所大型综合...
    16设计3曾金盛阅读 370评论 0 0
  • 与时光来一次谈判, 兜兜转转, 我们终会遇见。
    阝讠阅读 205评论 2 9
  • 改革开放的春雷 鼓舞着人们向前 每一串脚印都像播种 只要这个季节还能被阅读 我们都是幸运的 那怕拥有的只是一些水珠...
    比秋乡阅读 492评论 3 6
  • 1.项目预算的建议 第一,项目的成本预算要以项目需求为基础 第二,项目成本预算要与项目目标相联系,必须考虑项目的质...
    彬荣阅读 634评论 0 0