暂无图片
row格式下,表上没有任何索引,对于从库来说,回放线程需要执行的全表扫描的次数问题
我来答
分享
暂无图片 匿名用户
row格式下,表上没有任何索引,对于从库来说,回放线程需要执行的全表扫描的次数问题

表上没有任何索引,且二进制日志格式为 ROW

假设A表select count(*) from abc =500
 delete from abc where id <= 100; 符合条件的是100条记录

如果表abc上没有任何索引,在从库重放时,因为是 ROW 格式,对于每条记录的操作都会进行一次全表扫描,


因为符合的是100条,是不是需要全表扫描100次呢??

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
叨叨

不是,只需要全表扫描一次。在ROW格式下,binlog中记录的是每一行的修改情况,所以在从库重放时,只需要读取一次全表的数据即可。但是对于像你提到的这种删除操作,由于没有索引,从库必须逐行检查是否满足删除条件,这就需要进行全表扫描了。不过这里要注意的是,虽然不需要全表扫描100次,但是如果表很大,全表扫描的时间可能会很长,所以最好还是给表加上合适的索引以提高性能。

暂无图片 评论
暂无图片 有用 8
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏