登录
首页 >  数据库 >  MySQL

mysql(持续更新)

来源:SegmentFault

时间:2023-01-14 09:34:12 442浏览 收藏

本篇文章向大家介绍《mysql(持续更新)》,主要包括MySQL,具有一定的参考价值,需要的朋友可以参考一下。

执行一条sql

update user set name = `xx` where id = 100

步骤

  1. 从磁盘中抽取id=100所在的数据页,放入buffer pool
  2. 对id=100的数据加x锁
  3. 将id=100的数据放入undo log
  4. 在buffer pool中修改id=100的数据
  5. 将修改日志放入redo log buffer
  6. 提交事务时,根据innodb_flush_log_at_trx_commit的值,进行落盘。
innodb_flush_log_at_trx_commit取值

提交事务时,选择0、2,都有丢失风险。

  • 0,不落盘,不刷到redo log
  • 1,必须刷到redo log磁盘文件(默认,最常用)
    image.png
  • 2,刷到 os cache即可
    image.png

今天关于《mysql(持续更新)》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

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