登录
首页 >  数据库 >  MySQL

事务日志

来源:SegmentFault

时间:2023-01-21 11:46:06 298浏览 收藏

亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《事务日志》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下MySQL,希望所有认真读完的童鞋们,都有实质性的提高。

事务日志在书中只有一小节的内容,但是感觉对于理解MySQL的许多机制比较重要,所以记录一下。
为了提高事务中更新操作的效率,MySQL中的大多数存储引擎都实现了事务日志。
使用事务日志,当有更新操作时,存储引擎只将数据在内存中的copy修改成更新后的值,但并不将数据的更新刷新的硬盘,只是将更新操作的行为记录到硬盘上的事务日志中。因为事务日志的记录是采用文件追加的方式,因此写日志的操作是磁盘上一小块区域内的顺序I/O,而不像随机I/O需要在磁盘的多个地方移动磁头。并且仅仅记录数据更新行为的数据量也非常小,所以事务日志的记录是非常快的。
事务日志持久以后,对用户而言,数据的更新操作就完成了。内存中被修改的数据在后台可以慢慢的刷新到真正的硬盘数据库文件中。这样数据最终就被完整的存储好了。通过事务日志的方式更新数据,需要写两次磁盘,第一次是将更新行为记录到事务日志,第二次是真正的将更新后的数据记录到数据库文件中。
如果数据的修改行为已经记录到事务日志,但数据本身还没有写到数据库文件中,此时系统崩溃,存储引擎在重启之后会自动根据事务日志恢复这部分修改的数据。

到这里,我们也就讲完了《事务日志》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于mysql的知识点!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表