我一直在尝试对包含2列(id和nb_send)的巨大表(大约6百万行)进行大量更新
我只需要增加一列(nb_send)
这是查询:
UPDATE nb_send
SET n_nb_send = n_nb_send + 1
WHERE n_id = ( .., .., .. with the 100K ids, etc.. )
当我想要更新100K行时,需要花费很多时间(我从未等到最后因为它超过了40分钟)而且我想在不到2分钟的时间内完成。
答案 0 :(得分:0)
尝试从此表中删除所有索引(以及使用nb_send列的表中的索引),然后更新nb_send,然后重新创建所有索引。
我希望这会有所帮助
答案 1 :(得分:0)
这种情况的解决方案不是创建一个列(作为计数器)并更新它,而是创建一个新表,用您需要的所有信息计算您想要的内容。
“WHERE id =”根本没有针对大型表进行优化。