mysql中的undo怎么改
mysql中的undo修改可以采用重新设置的方式都改它的默认值,名称为rows in set 。
相对的或者绝对路径 InnoDB 创建单独的表空间用于undo logs.
通常用于防止那些日志在不同的存储设备,
innodb_undo_logs.and.innodb_undo_tablespaces 结合起来使用。
确定了undo logs的磁盘布局 默认值是"." 表示同样的目录和InnoDB创建它的其他日志文件一样。那也可以修改undo的表空间设置,包括大小,空间位置等各项参数,共享表以及独立表空间。
undo日志什么时候清除
还有一点需要注意,事务共享表空间中写入undo日志的过程同样需要写入redo日志,事务一旦提交,也就意味着事务的持久性生效,那么undo日志则不被需要,但是innodb并不会把这个undo日志直接删除,而是放在一个undo日志的链表中,到底什么时候删除取决于mysql的purge线程,这样做是为了避免其他的事务需要通过undo日志来得到这条记录之前的版本。
mysql怎么显示结果
这样显示结果:
1、数据更新时执行器先找buffer pool缓存池中,如果在缓冲池中,同时返回给执行器。
2、如果未命中缓存,需要先从磁盘读入内存,然后再返回给执行器。
3、不管是否命中缓存,都需要将更新前的旧数据写入到undo中。
4、更新内存,此时变成脏数据,后续会调用接口将数据落盘。
5、同时将这个更新操作记录到redo log里面,此时redo log处于 prepare 状态。然后告知执行器执行完成了,随时可以提交事务。
7、执行器生成这个操作的binlog,并把binlog写入磁盘。
8、执行器调用引擎的提交事务接口,引擎把刚刚写入的redo log改成提交状态,更新完成。
最后数据落盘,已运行出结果。

