截断具有许多索引的集合非常慢

时间:2015-02-04 07:42:28

标签: arangodb

我使用一个包含大约2 Mio小记录和超过15个索引的集合。有时候我不得不喋喋不休。我认为最快的方法就是简单地截断它。但这需要几个小时。 当我手动删除之前的所有索引时,只需几秒钟。但是每次我都必须重新创建索引。

截断有/无索引的区别是什么?这是必要的,就我而言,截断意味着:"扔掉所有东西(也就是完整的索引)"?

1 个答案:

答案 0 :(得分:3)

truncate命令本身就是一个事务操作。 如果它在中间某处失败,它可以恢复和恢复已经删除的文档。因此,它与循环遍历集合中的所有文档并逐个删除它们大致相同。

有一个快捷版truncate可能是有意义的,它只删除集合中的所有数据而没有任何机会恢复文档。当然,这样的truncate不能成为另一个交易的一部分。但如果选择留给用户,我认为这是可以的。