我想插入大量数据,我应该使用什么:单insert into
个语句,还是必须使用批量插入?还有别的吗?我问的原因是,我的CrateDB节点磁盘平均只占11kb / s,而单个插入时磁盘负载为100%!
此外,是否支持INSERT INTO IGNORE
?我可以在CrateDB上批量抛出我的数据,它会忽略重复的条目吗?
谢谢!
答案 0 :(得分:0)
正如您所猜测的那样,批量插入可以为您提供最佳性能。然而,经验可能会有所不同 - 这主要取决于所选的“批量大小”,即一次发送多少条记录。通常一批1000条记录执行得非常好,但建议稍微玩一下,因为这可能是特定于运行的硬件CrateDB。
批量插入也会自动跳过重复插入 - 如果您在该表上定义了主键(数据库将如何知道什么是重复?)。这会对性能产生影响(不必要的查找/失败插入)但是......
根据您要实现的目标,您应该考虑使用insert or update