油边机 东莞网站建设开发一个页面多少钱
油边机 东莞网站建设,开发一个页面多少钱,怎么让网站分享有图片,深圳市企业网站seo营销工具文章目录 1. redo日志 1. redo日志
口述#xff1a;redo log 日志其实保证了ACID中的持久性#xff0c;就是说当事务commit后#xff0c;那么相应的修改呀更新这些操作其实都会记录到redo log中#xff0c;其实这里的操作还是区别于redis中的aof中#xff0c;它不是具体的… 文章目录 1. redo日志 1. redo日志
口述redo log 日志其实保证了ACID中的持久性就是说当事务commit后那么相应的修改呀更新这些操作其实都会记录到redo log中其实这里的操作还是区别于redis中的aof中它不是具体的sql语句而是说我们的sql语句执行后具体要做的事比如说sql语句更新什么什么页中的哪个记录其实它是记录的这些具体的在磁盘中的数据页的记录的这些变动那有了redo log的话其实就保证了数据的不会丢失即使事务commit后宕机了那redo log文件还是有记录的当宕机恢复后还是可以将数据同步到磁盘的。 这里要再细说的话其实每执行这些修改语句的话其实都会写入 redo log buffer缓冲区的 redo log buffer再写入到文件系统缓存Page Cache中然后再刷新到磁盘中的redo file 文件中其实这里的刷新的话其实是写入到redo log file中并不是真正的同步数据只是做个记录因为其实redo log file记录的话我们只需要按顺序吧需要改的页记录下来需要改的值记录下来并不是真正的在Btree中修改数据因为这个可以避免这种随机IO因为你要改的话肯定是找到具体的页具体的记录再改比较耗时不可能这样直接去改的所以先写到redo log file中这也是顺序IO性能较好然后定期再从redo log file其实也就是内存修改的数据更新到磁盘。
事务有4种特性:原子性、一致性、隔离性和持久性。那么事务的四种特性到底是基于什么机制实现呢?
事务的隔离性由锁机制实现 而事务的原子性、一致性和持久性由事务的redo日志和undo日志来保证。 1redo log称为重做日志提供再写入操作恢复提交事务修改的页操作用来保证事务的特久性。 2undo log称为回滚日志回滚行记录到某个特定版本用来保证事务的原子性、一致性。
redo log 的作用 InnoDB引擎的事务采用了WAL技术Write-Ahead Logging )这种技术的思想就是先写日志再写磁盘只有日志写入成功才算事务提交成功这里的日志就是redo log。当发生宕机且数据未刷到磁盘的时候可以通i过redo log来恢复保证ACID中的D 这就是redo log的作用。
redo log 的特点 redo日志是顺序写入磁盘的 在执行事务的过程中每执行一条语句就可能产生若干条redo日志这些日志是按照产生的l顺序写入磁盘的也就是使用顺序IO效率比随机lO快。 事务执行过程中redo log不断记录 redo log跟bin log的区别,redo log是存储引擎层产生的而bin log是数据库层产生的。假设一个事务对表做10万行的记录插入在这个过程中一直不断的往redo log顺序记录而bin log不会记录直到这个事务提交才会一次写入到bin log文件中
redo log的刷盘策略这里的刷盘是指将redo log buffer中的内容刷新到redo log file文件中 redo log的写入并不是直接写入磁盘的InnoDB引擎会在写redo log的时候先写redo log buffer之后以 一定的频率刷到真正的redo log file 中
innodb_flush_log_at_trx_commit0事务commit后就会在redo log buffer中记录这些操作由InnoDB的后台线程每一秒将redo log buffer中的数据写入 Page Cache再写入到 redo log file中因为它不管事务commit后在 redo log buffer中记录了就不管了而是由InnoDB的后台线程每一秒来去写入到Page Cache所以可能丢失一秒的数据,无法保证ACID中的D。innodb_flush_log_at_trx_commit1只要事务提交成功,redo log记录就一定在硬盘里不会有任何数据丢失。innodb_flush_log_at_trx_commit2只要事务提交成功,redo log buffer 中的数据就写入到Page Cache之后操作系统每一秒再写入到 redo log file中。
写入redo log buffer 过程 MySQL把对底层页面中的一次原子访问的过程称之为一个Mini-Transaction简称mtr比如向某个索引对应的B树中插入一条记录的过程就是一个Mini-Transaction。一个所谓的mtr可以包含一组redo日志在进行崩溃恢复时这一组redo日志作为一个不可分割的整体。 buffer free中记录了使用到的位置下次来mtr的话在这个位置写入。
redo log小结
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/88087.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!