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 实例,以后不能更改。
如果没有值指定, 实例是使用默认设置初始化。