mysql undo

mysql> show variables like '%undo%';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| innodb_undo_directory   | .     |
| innodb_undo_logs        | 128   |
| innodb_undo_tablespaces | 0     |
+-------------------------+-------+
3 rows in set (0.00 sec)

 innodb_undo_directory  :

相对的或者绝对路径 InnoDB 创建单独的表空间用于undo logs.

通常用于防止那些日志在不同的存储设备,和innodb_undo_logs and innodb_undo_tablespaces 结合起来使用,

确定了undo logs的磁盘布局 默认值是"." 表示同样的目录和InnoDB创建它的其他日志文件一样


注意:

一个绝对路径必须被设置用于嵌入式的MYSQL 安装 

 innodb_undo_logs:



定义 undo logs 的数量(否则称为回滚段) 用于InnoDB 对于数据修改事务 产生undo ecords.

每个undo log 可以接待多大1024个事务

这个设置是合适的用于性能调优 如果你观察到undo logs的相关争用。

innodb_undo_logs  选项替换innodb_rollback_segments


对于可用undo logs的总量,而不是活动的数量

mysql> SHOW GLOBAL STATUS;

Innodb_available_undo_logs:

可用InnoDB undo logs 的总的数量,补充innodb_undo_logs 系统变量, 报告活动undo logs的数量



虽然你可以增加或者减少 undo logs 使用的数量, undo logs的数量物理表现在系统山该不会减少。

因此你可能 开始一个低的值用于这个参数,逐步增大它,以避免分配不需要的undo logs.

如果 innodb_undo_logs 没有被设置,它默认最小值是128

jrhdpt11:/root# mysql -uroot -p'R00t,uHagt.0511' -e"SHOW GLOBAL STATUS;" | grep undo
Warning: Using a password on the command line interface can be insecure.
Innodb_available_undo_logs	128



 innodb_undo_tablespaces:


表空间文件的数量,undo logs 是被分成当你使用一个非0的 innodb_undo_logs setting


默认的,所有的undo logs 是system tablespace的一部分, system tablespace 总是包含一个undo tablespace

除了那些配置了innodb_undo_tablespaces之外


因为undo logs 可以变大 在运行长时间运行的事务,让undo logs 在多个tablespaces 降低了 任何单个表空间的最大值


undo tablespace 文件是创建在innodb_undo_directory 定义的目录


重要:

innodb_undo_tablespaces 只能在初始化之前配置MySQL 实例,以后不能更改。

如果没有值指定, 实例是使用默认设置初始化。

原文地址:https://www.cnblogs.com/zhaoyangjian724/p/6199131.html