优化更新

Optimized update

我一直在尝试对具有 2 列(id 和 nb_send)的巨大 table(大约 600 万行)进行大规模更新

我只需要增加一列 (nb_send)

这是查询:

UPDATE nb_send 
  SET n_nb_send = n_nb_send + 1 
WHERE n_id = ( .., .., .. with the 100K ids, etc.. )

当我想更新 100K 行时,它需要很多时间(我从来没有等到最后,因为它超过了 40 分钟)我想在不到 2 分钟内完成。

尝试从此 table 中删除所有索引(以及使用 nb_send 列的 table 中的索引),然后更新 nb_send,然后重新创建所有索引。

希望对您有所帮助

这种情况的解决方案不是创建一个列(作为计数器)并更新它,而是创建一个新的 table 来计算您想要的内容以及您需要的所有信息。

"WHERE id = " 根本没有针对巨大的 tables 进行优化。