MySQL性能DELETE还是UPDATE?

Ale*_*tic 8 mysql performance

我有一个超过10 ^ 7行的MyISAM表.向其添加数据时,我必须在最后更新~10行.删除它们然后插入新的更快,还是更新这些行更快?应更新的数据不是索引的一部分.那么索引/数据碎片怎么样?

Qua*_*noi 21

UPDATE 远远快得多.

当你UPDATE,表记录刚刚用新数据重写.

当你DELETE,索引应该更新(记住,你删除整行,而不仅仅是你需要修改的列)和数据块可能会被移动(如果你达到了PCTFREE限制)

所有这些必须再次完成INSERT.

这就是你应该经常使用的原因

INSERT ... ON DUPLICATE KEY UPDATE
Run Code Online (Sandbox Code Playgroud)

而不是REPLACE.

前者是UPDATE密钥违规时的操作,后者是DELETE/ INSERT.