对于数据库MySQL 我想尽快插入行,因为它可以做到。 插入将以多线程方式执行。让它接近200线程。哪个更快?插入或更新?
有两种方法可以做到这一点,因为我想做的事:
1)使用简单插入命令,各插入将被包装成交易。 (INSERT INTO t()VALUES(),(),()...)但是它不能被使用,因为每一行都必须是独立的交易条款。换句话说,如果操作出现一些问题,我想只回滚一个插入的行,但不是批次中的所有行。
在这里,我们可以接近第二种方式:
2)单个线程可以用假数据,除了自动递增的ID完全空行做批量插入。这插入工作如此之快,我们甚至可以忽略这一次(大约40纳秒/行)与单个插入比较。 批量插入客户端后可以获得LAST_INSERT_ID和ROW_COUNT,即插入ID的'范围'。下一步是使用我们可以从之前的'范围'得到的ID之前用我们想要插入的数据进行更新。更新将以多线程方式执行。结果将是相同的。
现在我想问:哪种方式会更快 - 单次插入或批量插入+更新。
表中有一些索引。
问题不在于“批量插入”或“插入或更新”。商业智能 - 完全不适合,我之前已经提到过它。当我写这篇文章时,我想要大胆一些,但是我会记住严格的版主和其他人。但无论如何,非常感谢你 – user2602807
这是一个认真的答案,但你似乎并不喜欢我花时间来帮助**你**与**你的**问题。即使它不是你想要的,你也可能没有评论和忽略它。现在寻找黑名单功能... – john16384
每个人都花时间回答或询问。 – user2602807