使用 CrateDB 批量插入和 INSERT INTO IGNORE
Bulk inserts and INSERT INTO IGNORE with CrateDB
我想插入大量数据,我应该使用什么:单个 insert into
语句,还是必须使用批量插入?还有别的吗?我问的原因是,我的 CrateDB 节点的磁盘平均仅以 11kb/s 的速度忙碌,而使用单次插入时磁盘负载为 100%!
此外,是否支持INSERT INTO IGNORE
?我可以将我的数据批量扔到 CrateDB 中,它会忽略重复的条目吗?
谢谢!
因此,正如您猜对的那样,批量插入可为您提供最佳性能。然而,体验可能会有所不同——这主要取决于所选择的 "bulk size",即一次发送多少条记录。通常一批 1000 条记录的性能非常好,但建议尝试一下,因为这可能特定于运行 CrateDB 的硬件。
批量插入也将自动跳过重复插入 - 如果您在 table 上定义了主键(否则数据库将如何知道什么是重复项?)。尽管这会影响性能(不需要 lookup/failed 插入)...
根据您想要实现的目标,您应该考虑使用 insert or update
我想插入大量数据,我应该使用什么:单个 insert into
语句,还是必须使用批量插入?还有别的吗?我问的原因是,我的 CrateDB 节点的磁盘平均仅以 11kb/s 的速度忙碌,而使用单次插入时磁盘负载为 100%!
此外,是否支持INSERT INTO IGNORE
?我可以将我的数据批量扔到 CrateDB 中,它会忽略重复的条目吗?
谢谢!
因此,正如您猜对的那样,批量插入可为您提供最佳性能。然而,体验可能会有所不同——这主要取决于所选择的 "bulk size",即一次发送多少条记录。通常一批 1000 条记录的性能非常好,但建议尝试一下,因为这可能特定于运行 CrateDB 的硬件。
批量插入也将自动跳过重复插入 - 如果您在 table 上定义了主键(否则数据库将如何知道什么是重复项?)。尽管这会影响性能(不需要 lookup/failed 插入)...
根据您想要实现的目标,您应该考虑使用 insert or update