Mysql 重复密钥更新时插入是否优于反向?

Mysql 重复密钥更新时插入是否优于反向?,mysql,sql,query-optimization,innodb,Mysql,Sql,Query Optimization,Innodb,(在MySQL、InnoDB上)我不是直接检查某个记录是否存在,而是懒洋洋地检查:我通常使用INSERT。。。在重复密钥更新时…。在我的代码的某些点上,存在记录的概率高于没有记录的概率,在这种情况下,我计划: 更新… 一般来说,如果受到影响,你应该针对每个具体情况选择最佳方法。这取决于很多因素。如果服务器和客户端不在同一硬件上,INSERT。。。在重复键上更新可能更好,因为它不需要第二次往返;我见过的每一个经常使用它的开发人员最终似乎都会被它咬到。然而,我听到一些强有力的论据支持它来防止繁忙系

(在MySQL、InnoDB上)我不是直接检查某个记录是否存在,而是懒洋洋地检查:我通常使用
INSERT。。。在重复密钥更新时…
。在我的代码的某些点上,存在记录的概率高于没有记录的概率,在这种情况下,我计划:

  • 更新…

  • 一般来说,如果
    受到影响,你应该针对每个具体情况选择最佳方法。这取决于很多因素。如果服务器和客户端不在同一硬件上,
    INSERT。。。在重复键上更新
    可能更好,因为它不需要第二次往返;我见过的每一个经常使用它的开发人员最终似乎都会被它咬到。然而,我听到一些强有力的论据支持它来防止繁忙系统上的并发问题。综上所述,受影响的行也可能不是一个好的解决方案,这取决于更新的
    ;如果行存在且集合未更改当前值,则受影响的_行将为0。