【发布时间】:2015-02-05 16:26:14
【问题描述】:
我使用一个包含大约 2 个 Mio 小记录和超过 15 个索引的集合。有时我必须清空它。我认为最快的方法是简单地截断它。但这需要几个小时。 当我之前手动删除所有索引时,只需几秒钟。但是每次之后,我都必须重新创建索引。
截断带/不带索引的区别是什么?这是必要的吗,据我所知,截断的意思是:“把所有东西都扔掉(还有完整的索引)”?
【问题讨论】:
标签: arangodb
我使用一个包含大约 2 个 Mio 小记录和超过 15 个索引的集合。有时我必须清空它。我认为最快的方法是简单地截断它。但这需要几个小时。 当我之前手动删除所有索引时,只需几秒钟。但是每次之后,我都必须重新创建索引。
截断带/不带索引的区别是什么?这是必要的吗,据我所知,截断的意思是:“把所有东西都扔掉(还有完整的索引)”?
【问题讨论】:
标签: arangodb
truncate 命令本身就是一个事务操作。
如果它在中间的某个地方失败,它可以恢复和恢复已经删除的文档。因此,它与遍历集合中的所有文档并逐个删除它们大致相同。
拥有truncate 的快捷版本可能是有意义的,它只是删除集合中的所有数据,而没有任何机会恢复文档。当然,这样的truncate 不能成为另一笔交易的一部分。但如果选择权留给用户,我认为没问题。
【讨论】: