gpt4 book ai didi

MySQL UPDATE 语句性能

转载 作者:行者123 更新时间:2023-11-29 13:25:13 24 4
gpt4 key购买 nike

在一个超过 1000 万行的表上,其中哪一个 UPDATE语句可能会更快,或者它们太多了吗?

  1. UPDATE table SET col1 = col2 WHERE col1 IS NULL;
  2. UPDATE table SET col1 = col2 WHERE col1 IS NULL AND col2 IS NOT NULL;

都不是col1也不col2是键或索引。他们实际上是datetime字段,如果这改变了什么。

<小时/>

注意:我相当确定查询会达到相同的结果:

查询 1. 将更新 col1每次,包括将其设置为 NULL如果col2 is NULL .

查询 2. 将更新 col1仅当 col2有一个值,从而留下 col1NULL如果col2 is NULL .

它们都以相同的方式更改数据。一套 col1NULLcol2 is NULL ,其他叶子 col1NULLcol2 is NULL ,但在所有情况下 col1NULL首先。

最佳答案

性能的衡量比猜测更好。但这是我的猜测:这在很大程度上取决于您对因数的使用及其基数

这意味着:如果 col2 有一个包含数千个不同值的索引,并且 null 是其中之一,那么它会比查询 1 更快。如果没有查询并且 col2 几乎总是 null,那么它会更慢。

如果您有一个跨越两个列的双列索引,并在 where 部分使用两个列,将获得最佳性能

关于MySQL UPDATE 语句性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20239325/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com