更快地插入重复键更新

时间:2015-12-17 13:24:11

标签: mysql sql innodb

这是我的查询

INSERT INTO temp.filecompsinorg(sha256,hostId)
SELECT sha256,hostId FROM indic.fileso limit 20000
ON DUPLICATE KEY UPDATE lastSeen = NOW();
  • temp.filecompsinorg有70万条记录(UNIQUE INDEX uniqunesssha256hostId))。
  • indic.fileso将提供20k记录。

此更新大约需要2分钟。我渴望的方式。

这是这个记录数量的正常时间范围吗?

有没有办法改进此查询?

1 个答案:

答案 0 :(得分:0)

两分钟内的20k记录约为200次更新/秒(2分钟内有120秒)。 on duplicate key update表示加载大于仅插入记录 - 它还涉及至少一个索引查找,可能还有update而不是insert

性能取决于可用的硬件(问题没有指明),但一秒钟内数百个此类操作似乎并不合理。对硬件和内存的投资可能会加快它的速度。