mysql undo

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