暂无图片
innoDB中,脏页中的脏数据(未commit的数据)能否下盘?
我来答
分享
杨培瑜
2022-07-03
innoDB中,脏页中的脏数据(未commit的数据)能否下盘?
  1. 上层控制commit流程的话,innoDB中的脏页应该会存在一些被锁住的,且数据被修改过的脏数据,那么有没有可能在这期间这一页需要被刷盘?那么此时脏数据是否也会被一起刷下去?(我知道sql server是会刷下去的,且可以通过tansaction log进行undo)

2. sql server中transaction log的粒度是statement,那么innoDB中redo log的粒度是多大?transaction吗?


初来乍到,感谢各位大佬

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
大大刺猬

每次刷盘都是整个 innodb log buffer (redo)落盘的(如下SQL可以查询平均每次落盘写入多少数据),     redo log的最小数据管理单元是 log_block,  这篇文章介绍得比较详细: https://mp.weixin.qq.com/s/7u0Tmy1F_3TGBhzvBrwMWw
SQL:  select * from sys.io_global_by_wait_by_latency where event_name like '%innodb_log%'

暂无图片 评论
暂无图片 有用 0
打赏 0
chengang

会,脏数据也会落盘
因为redolog 是循环写的。当写满了就只有落盘继续写了。

mysql 通过mvcc undolog回滚,即使落了盘也能回滚。

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
mysql load data 导入数据,怎么查看导入的进度?
回答 1
https://blog.csdn.net/weixin27032989/article/details/113217022看看这个
求问,大家有比较规范的mysql数据库巡检报告模板吗?该巡检哪些项等等
回答 1
同求!
MySQL 有没有办法清理global status下的数据?
回答 1
5.7之后,globalstatus读的是performanceschema.globalstatus这个表的数据
mysql有没有错误代码清单?
回答 2
已采纳
0101属于其他进程的专用标志。0102标志已经设置,无法关闭。0103无法再次设置该标志。0104中断时无法请求专用标志。0105此标志先前的所有权已终止。0106请将软盘插入驱动器%1。0107后
MySQL数据库为什么 B+ 树比 B 树更适合应用于数据库索引?
回答 6
已采纳
B树允许在根节点、内部节点和叶节点当中的任意层上储存值;而B树则仅在叶节点中存储值,其内部节点仅存储分隔键,用于指引搜索算法去找到叶节点上的关联值。由于B树中的值仅存储在叶节点这一层上,所以所有操作(
mysql有异地从库可以代替定期备份吗
回答 1
已采纳
mysql没有闪回。如果说有人说误删除了一个数据del。你可以用binlog或者用一些工具找回来。但是如果drop了就不行了。oracle可以。mysql不行。所以建议你再来一个延迟从库。比如2小时。
mysql的索引有几种了的?想不起来了
回答 2
已采纳
btree/hash
mysql主从同步
回答 7
1、主库删除操作不记录binlog。2、从库1部署相同脚本同步删除该表。
mysql 2万条数据量数据量应该不大吧,怎么建个索引hang半天还没好呢?可能是什么原因
回答 2
一定是其他事务卡主了。或者在做ddl。2万条,一秒就应该好了。
大佬给推荐点mysql的好书呗?
回答 2
已采纳
《MySQL实战(图灵出品)》陈臣著;墨值商城950墨值,你值得拥有;https://www.modb.pro/point/mall