一 简介:undo管理

二 各版本说明

1 5.5
    undo位置:默认ibdata1中,不支持独立表空间
   缺点:大事务可能造成ibdata1暴涨,只能dump导出导入或者从新搭建
  参数:rollback_segment(默认128个回滚段)
2 5.6
 undo位置:默认ibdata1中,支持独立表空间
 参数
   innodb_undo_logs(代替5.5的名字,默认128个回滚段)
   innodb_undo_directory 设置undo位置,默认当前文件夹
   innodb_undo_tablespaces 默认关闭,开启需要设置为1
 缺点:mysql5.6只支持初始化设置独立表空间,不可中途开启.而且也不能解决回收undo表空间问题.但是可以支持分布在不同磁盘,用来提高IO能力
 建议:不建议5.6开启独立undo空间,没什么意义
3 5.7
 undo位置:默认ibdata1中,支持独立表空间
 参数
  innodb_max_undo_log_size=1073741824
  innodb_undo_directory=./ 独立undo表空间路径
  innodb_undo_log_truncate=OFF 支持truncate回收表空间,默认关闭
  innodb_undo_logs=128 128个回滚段
  innodb_undo_tablespaces=0 独立表空间,默认为0,需要设置>=2
  innodb_purge_rseg_truncate_frequency=128 purge undo轮询128次后,进行一次undo的truncate
4 注意点:
 1 mysql5.7同样是只支持初始化设置,不可中途开启
 2 truncate会进行清理undo文件的条件: 1 触发 max_undo_log阈值(undo tablespace超过1GB(参数innodb_max_undo_log_size来控制))
   2 存在至少一个可用的undo文件
   3 被清理对象皆为free,也即为事务不需要
 以上三点都达到时候才会触发truncate进行undo表空间收缩,由purge线程执行
5 注意点
    1 mysql为什么不支持中途开启独立undo
    据我分析和看淘宝周报分析,这与space_id有关,默认ibdata中的space_id=0,一旦中途开启,独立undo空间的space_id为1,系统需要为0,
    观察错误: Expected to open 1 undo tablespaces but was able to find only 0 undo tablespaces. Set the innodb_undo_tablespaces parameter to the correct value and retry. Suggested value is 0
    可以得知 为0
    2 尽量避免大事务,将大事务进行拆分

6 8.0的持续改进:

1 默认开启独立undo表空间,更改undo表空间命名方式,默认大小为10M

2 在8.0之前只能创建128个回滚段,而在8.0版本开始,每个Undo tablespace可以创建128个回滚段,也就是说,总共有innodb_rollback_segments * innodb_undo_tablespaces个回滚段。这个改变的好处是在高并发下可以显著的减少因为分配到同一个回滚段内的事务间产生的锁冲突

3  Innodb_undo_truncate参数默认打开,会自动进行删除

4  支持undo tablespace加密

5  在8.0中直接在内存中为其创建单独的内存结构,这32个slot可以用于持久化的undo回滚段

6  允许动态的增加undo tablespace的个数,也就是说可以动态调整innodb_undo_tablespaces。当调大该参数时,会去创建新的undo tablespace。但如果设小该值,则仅仅是不实用多出来的Undo tablespace,目前不会去主动删除它们

mysql原理~undo管理的更多相关文章

  1. mysql原理~undo

    mysql undo详谈1 简介:undo是MVCC机制的基础部分之一2 作用:为了实现可重复性读,存储历史数据3 存储:5.6以前undo都存储在内存和ibdata1中,5.6以后undo可以独立成 ...

  2. 关系型数据库工作原理-事务管理(二)(翻译自Coding-Geek文章)

    本文翻译自Coding-Geek文章:< How does a relational database work>. 原文链接:http://coding-geek.com/how-dat ...

  3. [转]MySQL日志——Undo | Redo

    本文是介绍MySQL数据库InnoDB存储引擎重做日志漫游 00 – Undo LogUndo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多版 ...

  4. 【转载】MySQL 日志 undo | redo

    本文是介绍MySQL数据库InnoDB存储引擎重做日志漫游 00 – Undo LogUndo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多版 ...

  5. MySQL日志Undo&Redo

    00 – Undo LogUndo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多版本并发控制(简称:MVCC). - 事务的原子性(Atomi ...

  6. 关系型数据库工作原理-事务管理(一)(翻译自Coding-Geek文章)

    本文翻译自Coding-Geek文章:< How does a relational database work>. 原文链接:http://coding-geek.com/how-dat ...

  7. MySQL日志——Undo | Redo【转】

    本文是介绍MySQL数据库InnoDB存储引擎重做日志漫游 00 – Undo LogUndo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多版 ...

  8. mysql的undo log和redo log

    在数据库系统中,既有存放数据的文件,也有存放日志的文件.日志在内存中也是有缓存Log buffer,也有磁盘文件log file,本文主要描述存放日志的文件.     MySQL中的日志文件,有这么两 ...

  9. 第二章--MYSQL体系结构和管理

    体系结构 MySQL C/S模型 Server : mysqld Client : socket:仅本地连接使用 tcp/ip:应用连接使用(远程和本地) #TCP/IP方式(远程.本地) mysql ...

随机推荐

  1. docker--命令详解

    查看版本: docker --version 查看docker信息: docker info 进入容器: docker exec -it bb /bin/bash #在容器中执行一个bash可以操作容 ...

  2. day30 __new__ 以及单例模式

    __new__ # __new__ # object.__new__() class A : def __init__(self): self.x = 1 print("init执行啦&qu ...

  3. day23 模块引入的一些说明

    模块导入多次也是只导入一次 sys.modules里面会查看有没有被导入 导入后的模块内部的函数,变量就都可以拿来用了 给模块起别名,可以提高代码的兼容性 import time as t 但是被起别 ...

  4. MT【48】分式连加形式下求不等式解集的区间长度

    ] 评:此题有分析的味道在里面,用到了n次多项式的韦达定理,用到了零点存在定理以及代数基本定理:n次多项式在复数域上有n个根.

  5. linux运维、架构之路-linux文件属性

    1.查看文件属性 ls -lhi 文件属性详细说明 1. 第一列: inode索引节点编号 2. 第二列:文件类型及权限 3. 第三列:硬链接数 4. 第四列:文件或目录所属的用户,即文件的所有者 5 ...

  6. 16 利用Zabbix完成windows监控

    点击返回:自学Zabbix之路 16 利用Zabbix完成windows监控 1.安装zabbix_agentd 1.1.下载zabbix_agentd监控客户端软件安装包(windows操作系统客户 ...

  7. POJ1088(记忆搜索加dp)

    滑雪 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 106415   Accepted: 40499 Description ...

  8. Luogu 1312 【NOIP2011】玛雅游戏 (搜索)

    Luogu 1312 [NOIP2011]玛雅游戏 (搜索) Description Mayan puzzle 是最近流行起来的一个游戏.游戏界面是一个7行5列的棋盘,上面堆放着一些方块,方块不能悬空 ...

  9. HDU 1029 Ignatius and the Princess IV / HYSBZ(BZOJ) 2456 mode(思维题,~~排序?~~)

    HDU 1029 Ignatius and the Princess IV (思维题,排序?) Description "OK, you are not too bad, em... But ...

  10. MATLAB:图像水平、垂直、水平垂直镜像、转置、旋转变换(flipdim、mirror、transp、imrotate函数)

    1.原图像经水平.垂直.水平垂直镜像设置通过mirror函数实现: close all; %关闭当前所有图形窗口,清空工作空间变量,清除工作空间所有变量 clear all; clc; I=imrea ...