mysql(持续更新)
首页 专栏 mysql 文章详情
0

mysql(持续更新)

受命于天 发布于 3 月 2 日
执行一条sql
update user set name = `xx` where id = 100

步骤

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

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

0,不落盘,不刷到redo log 1,必须刷到redo log磁盘文件(默认,最常用)
2,刷到 os cache即可
mysql
阅读 12 更新于 3 月 2 日
收藏
分享
本作品系原创, 采用《署名-非商业性使用-禁止演绎 4.0 国际》许可协议
avatar
受命于天
6 声望
0 粉丝
关注作者
0 条评论
得票 时间
提交评论
avatar
受命于天
6 声望
0 粉丝
关注作者
宣传栏
目录
执行一条sql
update user set name = `xx` where id = 100

步骤

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

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

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