mysql5.5之前的innodb中,undo区域是系统表空间的一部分,但插入缓冲或doub lewrite缓冲等数据也会使用系统表空间。问题在于,undo区域是随机I/O工作,而double write缓冲基于顺序I/O向磁盘写记录。意味着,很难为保存系统表空间而选定磁盘位置。
mysql5.6的innodb引入3个系统变量,将undo区域放入非系统表空间:
1.innodb_undo_directory #设置undo 存储区域,默认“.”表示undo 区域使用系统表空间
2.innodb_undo_tablespaces #undo数据表空间最多可以创建126个,可以将undo区域想象为一个数据表,创建undo区域时可以划分多个数据表空间。
3.innodb_undo_logs #该设置指定回滚段的个数(rollback segment),innodb中最多可有1023个写事物共享一个回滚段,此变量最大值可设128个。
时间: 2024-12-28 14:37:45