mysql replace语句
时间:2022-03-06 04:21
语法
疑问: 既然uk冲突的时候是update,那么为什么affect_rows都是2呢?让我们从源码上分析看下:
用的时候需要注意的是:
例:
MySQL给replace和load data....replace用的算法是:
如果遇到重复行冲突,存储过程很可能当作update执行,而不是delete+insert,但是显式上都是一样的。这里没有用户可见的影响除了存储引擎层Handler_ 因为REPLACE ... SELECT语句的结果依赖于select的行的顺序,但是顺序没办法保证都是一样的,有可能从master和slave的都不一样。正是基于这个原因,MySQL 5.6.4以后,REPLACE ... SELECT语句被标记为基于statement的复制模式不安全的。基于这个变化,当使用STATEMENT记录二进制日志的时候,如果有这样的语句就会在log里面输出一个告警,同样当使用MIXED行复制模式也会记录告警。 在MySQL5.6.6之前的版本,replace影响分区表就像MyISAM使用表级锁锁住所有的分区表一样。当使用 操作形式: binlog格式: 结论
相关推荐
电脑软件本类排行今日推荐热门手游 |