MySQL事务回滚的2个问题分析
你看,插入的记录在当前事务。最后,它只是删除了。但auto_increment不应删除和更改值。
1。为什么auto_increament没有回滚
由于InnoDB的auto_increament计数器的当前值保存在存储记忆不存在磁盘上。当MySQL服务器运行的价值只会增加,不会减少,插入,删除,MySQL服务器启动时,当我们需要查询auto_increment计数,MySQL会自动执行:选择最大(ID)从表名称更新;语句来获取当前auto_increment列的最大值,然后在一个auto_increment计数器的值,所以即使回滚MySQL的auto_increament计数器不是负操作。
2,是MySQL事务到表的事务的物理操作吗
MySQL是一个redo和undo事务,所有的信息都记录在redo_log重做操作,即当一个事务提交操作,需要把这个交易操作写入到磁盘上的redo_log,然后冲洗操作,当发生故障时,只需要读取redo_log然后对线盘冲洗重新。
撤消MySQL是比较麻烦的时候处理事务,将分享数据的一段称为段表空间,用于保存恢复信息,当处理回滚,物理撤消是不完全的,但逻辑撤消,将反向操作之前的操作,但这些共享表空间不回收。这些表空间的恢复需要通过mysql的主线程处理回收。