MySQL undo日志
20 undo日志
事务的回滚需求
事务需要保证原子性,如果事务的执行过程,服务器发生了错误,就需要将事务进行回滚(对部分语句进行回滚,对整个事务进行回滚)。
InnoDB把为了回滚而记录的东西称为undo日志,对数据库进行改动(insert、delete、update)操作时,就需要进行记录,不同的操作类型产生的undo日志的格式是不一样的。
插入操作,记录主键值回滚时只需要根据主键值将相应的记录删除删除操作,把记录的内容记录,回滚时把删除前记录的内容重新插入
事务Id
分配Id的时机
读写事务,只有在它第一次对某个表执行改动操作时,才分配事务Id只读事务,只能对临时表进行改动操作如果不为事务分配Id,则事务Id为默认值0。
事务Id的生成
事务Id与隐藏列row_id的分配策略类似,MySQL会维护一个全局变量,为事务分配Id后,就自增1,当它的值为256的倍数
MySQL undo日志最先出现在Python成神之路。
共有 0 条评论